This is the last post I will make about my text search system, I'll
respond off line if anyone wants to correspond. I have taken up too much
bandwidth as it is. The only reason I have been so persistent is that I
can't believe that I am the only person having this particular problem,
and that some resolution will make Postgres an even better product. I am
posting this so people trying to do what I have been trying to do, have
someplace to start. ;-)

Resolution:
Short of creating a new index type in Postgres, and waiting for some
later version which allows "sets" to be returned by functions, we are
left with few options. My best solution, as kludgy as it is, is this:

select search_exec('bla bla');

create temp table fubar as select search_key() as "key", search_rank()
as "rank" from search_template where search_advance()>0 limit count;

select * from table where some_table.key = fubar.key;

Assumptions:

search_template is a table which contains [n] number of rows of one or
more fields. [n] is some maximum number of results. search_template
should be sufficiently small to be as efficient as possible. A valid
table must be used because multiple results need to be returned. 

<HACKERS>
If the postgres hackers want to make a 'virtual table' called something
like "pg_counter" which, when queried, returns an enumeration starting
with '0'..'[n]' that would be cool. The danger, of course, is that a
limit must be specified, but it could be useful beyond just my
application
</HACKERS>

Aside from this hack, I have been unable to find a reasonably expedient
way to do this. I have this working on a system, and it does seem to
work. If anyone has a reasonable alternative, or knows of any problems
this approach may have, I'd love to hear it. If anyone is interested in
the interface code, I would be glad to supply it as GPL.

I am very grateful for all the attention and patience.

Mark.

-- 
http://www.mohawksoft.com

Sun, 10 Dec 2000 16:31:20 -0500
mlw <markw@mohawksoft.com>
Functions returning sets, last one I promise!