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 $$
DECLAREcur refcursor;
BEGINOPEN 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