Bruce Tong wrote:
> 
> > > SELECT * FROM foo WHERE ROW_COUNT < 10;
> > > Is there anything like "ROW_COUNT" or "ROWCOUNT" in PostgreSQL?
> 
> > If trying to receive 10 rows, try
> >
> > begin;
> > declare thomas cursor for select * from foo;
> > fetch 10 in thomas;
> > end;
> 
> Ooo, a cursor. I'll have to look into those. I was thinking I could just
> issue "select * from foo" and then only use the first 10 results, but that
> seemed like such a waste of time since there's likely to be 100's of
> records. Admittedly I'm ignorant of the solution you pose and I'll have to
> do some research, but it seems it too might also have the postmaster
> return all of the records, of which I would only use 10. Am I wrong?

Yes. It is designed explicitly for the purpose of limiting the returns.
For example, if you have a database of several million records and
want only 10 to be returned...

For example, a piece of code that wanted to be conservative on memory
usage, while handling millions of records in the database, might issue
(pseudo-code):

begin;
   declare thomas cursor for select * from foo;
   do
     res = fetch 10 in thomas;
     iRows = nTuples(res)
     process_records;
   while(iRows>0);
end;  

>From a coding perspective, you deal with the results of the fetch just
as if they had come from the select.

Hope this helps

Thomas
> 
> Bruce Tong                 |  Got me an office; I'm there late at night.
> Systems Programmer         |  Just send me e-mail, maybe I'll write.
> Electronic Vision / FITNE  |
> [EMAIL PROTECTED]        |  -- Joe Walsh for the 21st Century

-- 
------------------------------------------------------------
Thomas Reinke                            Tel: (416) 460-7021
Director of Technology                   Fax: (416) 598-2319
E-Soft Inc.                         http://www.e-softinc.com

Reply via email to