Re: DB2's row_number() - Mailing list pgsql-hackers

From Darcy Buskermolen
Subject Re: DB2's row_number()
Date
Msg-id 200307171116.18654.darcy@wavefire.com
Whole thread Raw
In response to DB2's row_number()  (Hans-Jürgen Schönig <postgres@cybertec.at>)
List pgsql-hackers
Here is how I doi it when I need to...

BEGIN;
CREATE TEMP SEQUENCE row_num;
SELECT next_val('row_num'), relname FROM pg_class LIMIT 3;
ROLLBACK;

You could also do this with a Set Returning Fucntion so that it returns the
nextval in a simular way



On Thursday 17 July 2003 08:03, Hans-Jürgen Schönig wrote:
> I had a brief look at DB2's row_number function which seems to be pretty
> useful.
> What it does is:
>
> test=# SELECT row_number(), relname FROM pg_class LIMIT 3;
>   row_number |    relname
> ------------+----------------
>            1 | pg_description
>            2 | pg_group
>            3 | pg_proc
> (3 rows)
>
> This makes sense to me and I need this feature from time to time. My
> question is: How do I find out when a query starts? Inside a table
> function I can call SRF_IS_FIRSTCALL() to see when it is called first.
> Is there an easy way to check that inside an "ordinary" C function
> returning just one value?
> Currently my function counts the number of times it has been called per
> connection. I could write a second function for resetting the counter
> but this is not too smart ...
>
>     Regards,
>
>         Hans

--
Darcy Buskermolen
Wavefire Technologies Corp.
ph: 250.717.0200
fx:  250.763.1759
http://www.wavefire.com


pgsql-hackers by date:

Previous
From: Robert Treat
Date:
Subject: Re: Patches List
Next
From: Robert Treat
Date:
Subject: Re: Patches List