Please leave the ML in the reply-list, so that others might benefit from the 
answers, comment on the solution, etc etc. ;)

On 25 Oct 2010, at 13:55, AI Rumman wrote:

> I am using Postgresql 8.1 and facing the similar problem.
> Can you provide the link where I get the information what you did with PHP?

Not really, as I wrote it myself at a company that no longer exists; There is 
no link.

You can however look at the documentation, specifically:
http://www.postgresql.org/docs/8.1/interactive/sql-declare.html and
http://www.postgresql.org/docs/8.1/interactive/sql-fetch.html

You can retrieve the number of rows after MOVE FORWARD ALL (similar to the 
below posting) either from pg_num_rows() or by reading out the return value 
(not the result set!) of the query.
I don't remember exactly how I did it, I used this method several years ago and 
have since dropped PHP as a programming language I support.


> On Mon, Oct 25, 2010 at 1:29 PM, Alban Hertroys 
> <dal...@solfertje.student.utwente.nl> wrote:
> On 24 Oct 2010, at 15:41, Reuven M. Lerner wrote:
> 
> > I've managed to improve things quite a bit by using cursors, but I've been 
> > stumped in trying to find a replacement for the COUNT(*).  I wrote a 
> > function that works great on 9.0:
> >
> > CREATE OR REPLACE FUNCTION count_the_rows() RETURNS INTEGER AS $$
> > DECLARE
> >    mycursor CURSOR FOR SELECT * FROM test_table;
> >    number_of_rows integer := 0;
> > BEGIN
> >    OPEN mycursor;
> >    MOVE ALL IN mycursor;
> >    GET DIAGNOSTICS number_of_rows := ROW_COUNT;
> >    RETURN number_of_rows;
> > END;
> > $$ LANGUAGE 'plpgsql';
> >
> > Unfortunately, the project is using 8.3, and the function refuses to even 
> > compile, due to the "MOVE ALL".  When we change it to something else (such 
> > as MOVE 20000000, which returns the actual number of rows skipped to psql), 
> > or ABSOLUTE -1, we get 0 back from ROW_COUNT.
> 
> 
> I recall movable cursors weren't supported in pl/pgsql until 8.4.
> 
> You can use (movable) cursors in SQL though. That probably requires some 
> client-side code, as things like GET DIAGNOSTICS aren't available in sql 
> functions, but it may be of use to you. I've done this in a PHP 
> web-application a couple of times.
> 
> Alban Hertroys
> 
> --
> Screwing up is an excellent way to attach something to the ceiling.
> 
> 
> 
> 
> 
> 
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general
> 

Alban Hertroys

--
Screwing up is an excellent way to attach something to the ceiling.


!DSPAM:737,4cc5778810291816532262!



-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to