Re: Counting records in a PL/pgsql cursor

Richard Troy <rtroy@sciencetools.com>

From: Richard Troy <rtroy@ScienceTools.com>
To: Merlin Moncure <mmoncure@gmail.com>
Cc: Magnus Hagander <mha@sollentuna.net>, Martijn van Oosterhout <kleptog@svana.org>, <pgsql-general@postgresql.org>
Date: 2006-11-03T14:15:21Z
Lists: pgsql-general
On Fri, 3 Nov 2006, Merlin Moncure wrote:
> >
> > I can deal with materializing the resultset, but I want to get away from
> > the loop-a-thousand-times-doing-plus-one...
>
> i dont think its possible.  note that you can make a refcursor inside
> your plpgsql function and pass it to an sql function which can do sql
> cursor operations on it -- i think :-)..haven't tried it yet.
>
> merlin

...If you know your application well enough, you might get away with doing
a select count() with the same where clause just before entering the
cursor. It _could_ of course be wrong, though! OTOH, it would be much
faster. If the only down-side is occasionally giving users an incorrect
count, then perhaps call it a "row estimate", and let them marvel at how
accurate the estimate is most of hte time!

Good luck,
Richard



-- 
Richard Troy, Chief Scientist
Science Tools Corporation
510-924-1363 or 202-747-1263
rtroy@ScienceTools.com, http://ScienceTools.com/