Re: Counting records in a PL/pgsql cursor

Richard Huxton <dev@archonet.com>

From: Richard Huxton <dev@archonet.com>
To: Magnus Hagander <mha@sollentuna.net>
Cc: pgsql-general@postgresql.org
Date: 2006-11-03T10:41:21Z
Lists: pgsql-general
Magnus Hagander wrote:
> Is there any way to count how many hits I got in a cursor in PL/pgsql? 
> 
> I have a function that will "window" through the result of a (large)
> query based on two parameters, but I also want to return the number of
> hits to the client. Right now I'm looping through the entire cursor and
> incrementing a local variable, which I later return (along with the
> first <n> records in the resultset) to the client. But this seems
> horribly inefficient... I'd just like to ask "how many rows are in this
> cursor", is there a way to do that without looping through them all?

Not really - that's the point of a cursor, after all. If possible, the 
planner should give you the first row before it has all of them, so it 
might not even know.

-- 
   Richard Huxton
   Archonet Ltd