I have used to declare cursors in the DECLARE section of a PL/pgSQL function. The example here seems to be broken in CVS tip:

CREATE FUNCTION test () RETURNS void AS '
DECLARE
  credit_cursor CURSOR (p_account integer, p_reference integer) FOR
   SELECT * FROM booking
     WHERE account_id=p_account AND reference=p_reference
       AND unassigned_amount = amount AND amount > 0 AND side=''credit''
       AND position_closed AND type NOT IN (''RC'', ''RP'')
   ORDER BY journal_id ASC;
BEGIN
END
'
LANGUAGE PLPGSQL;

I get:
ERROR:  syntax error at or near "," at character 237
LINE 9:   credit_cursor CURSOR (p_account integer, p_reference integ...


The same function works perfectly well in 7.4.8 and 8.0.3.
A bug?

Best Regards,
Michael Paesold

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
      choose an index scan if your joining column's datatypes do not
      match

Reply via email to