order by in for loop in plpgsql does not work

From: Jean-Luc Lachance <jllachan(at)nsd(dot)ca>
To: pgsql-general(at)postgresql(dot)org
Subject: order by in for loop in plpgsql does not work
Date: 2002-11-26 20:36:02
Message-ID: 3DE3DB32.8138C2C8@nsd.ca
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Any idea why when I call this function the record are not processed in
the order requested?

JLL

P.S.

It would be nice if the syntax would allow me to write something like >>
cur.seqno = seq
and have the underlying record updated.

declare

cur record;
seq int;
exchangeno text;
routeno text;

begin

exchangeno := '';
routeno := '';

for cur in
select oid, * from r order by exchangeno, routeno, street,
municipality, parity desc, fromno for update
loop
if cur.exchangeno != exchangeno or cur.routeno != routeno
then
seq := 1;
exchangeno := cur.exchangeno;
routeno := cur.routeno;
end if;
update r set seqno = seq, route = routeno || trim( lpad( seq, 4, '0'))
where oid = cur.oid;
seq := seq + 1;
end loop;

return 0;
end;

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jean-Luc Lachance 2002-11-26 20:45:30 Re: order by in for loop in plpgsql does not work
Previous Message Darko Prenosil 2002-11-26 20:26:40 Re: Location of language .mo files or 'Zašto postgres ne govori Hrvatski' ???