| From: | Patrick Scharrenberg <pittipatti(at)web(dot)de> |
|---|---|
| To: | pgsql-sql(at)postgresql(dot)org |
| Subject: | order by when using cursors |
| Date: | 2008-06-18 06:02:43 |
| Message-ID: | 4858A503.4030804@web.de |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
Hi!
I did some experiments with cursors and found that my data doesn't get
sorted by the "order by"-statement.
Here is what I did:
----------------
CREATE TABLE ta (
a integer NOT NULL,
b integer NOT NULL
);
insert into ta values(3,1);
insert into ta values(1,2);
insert into ta values(4,3);
insert into ta values(2,4);
CREATE OR REPLACE FUNCTION testcur( OUT a integer, OUT b integer )
RETURNS SETOF RECORD AS $$
DECLARE
cur refcursor;
BEGIN
OPEN cur FOR SELECT * FROM ta ORDER BY a DESC;
LOOP
FETCH cur INTO a,b;
IF not found THEN
exit;
ELSE
RETURN NEXT;
END IF;
END LOOP;
CLOSE cur;
END;
$$ LANGUAGE 'PLPGSQL' ;
SELECT * FROM testcur();
----------------
As the result I get:
3 1
1 2
4 3
2 4
Which is not ordered by column a!?
Is this intended?
Am I doing something wrong?
I'm using Postgresql 8.3.1
Patrick
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Pavel Stehule | 2008-06-18 06:44:08 | Re: order by when using cursors |
| Previous Message | Patrick Scharrenberg | 2008-06-18 05:31:32 | Re: using calculated column in where-clause |