From: | "Magnus Hagander" <mha(at)sollentuna(dot)net> |
---|---|
To: | "Martijn van Oosterhout" <kleptog(at)svana(dot)org> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Counting records in a PL/pgsql cursor |
Date: | 2006-11-03 11:07:06 |
Message-ID: | 6BCB9D8A16AC4241919521715F4D8BCEA3589D@algol.sollentuna.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
> > 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?
>
> You can move to the end, look at the row number, then move to
> the beginning. It will still need to materialise the entire
> resultset though.
How do I do that? remember this is a pL/pgsql cursor. From what I can
find at
http://www.postgresql.org/docs/8.1/static/plpgsql-cursors.html#PLPGSQL-C
URSOR-USING, I can only do FETCH to get the next row, or CLOSE.
I can deal with materializing the resultset, but I want to get away from
the loop-a-thousand-times-doing-plus-one...
//Magnus
From | Date | Subject | |
---|---|---|---|
Next Message | redhog | 2006-11-03 11:51:31 | Re: new and old not available in rule subselects? |
Previous Message | Shane Ambler | 2006-11-03 11:04:51 | Re: new and old not available in rule subselects? |