Re: Counting records in a PL/pgsql cursor

From: Richard Troy <rtroy(at)ScienceTools(dot)com>
To: Merlin Moncure <mmoncure(at)gmail(dot)com>
Cc: Magnus Hagander <mha(at)sollentuna(dot)net>, Martijn van Oosterhout <kleptog(at)svana(dot)org>, <pgsql-general(at)postgresql(dot)org>
Subject: Re: Counting records in a PL/pgsql cursor
Date: 2006-11-03 14:15:21
Message-ID: Pine.LNX.4.33.0611030611470.1126-100000@denzel.in
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
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(at)ScienceTools(dot)com, http://ScienceTools.com/

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Merlin Moncure 2006-11-03 14:18:51 Re: Counting records in a PL/pgsql cursor
Previous Message Rick Schumeyer 2006-11-03 14:06:00 I know the bad way...what is the good way?