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