plpgsql Cursor Mismatched Parentheses

Started by cnover 23 years ago2 messagesgeneral
Jump to latest
#1cn
cnliou@eurosport.com

Hi!

I have never successfully used bounded parameterized
cursors. Error occurs when opening cursor. Please see
below and help!

Regards,

CN
===========================
CREATE FUNCTION test(SMALLINT,SMALLINT) RETURNS
BOOLEAN AS '
DECLARE
y1 ALIAS FOR $1;
m1 ALIAS FOR $2;

o TEXT;
y2 SMALLINT;
m2 SMALLINT;

c CURSOR (o TEXT,y1 SMALLINT,m1 SMALLINT,y2
SMALLINT,m2 SMALLINT) IS
SELECT column1,column2 FROM table1 WHERE column9=o
AND column3 BETWEEN (SELECT column3 FROM table1 WHERE
column9=o AND column1=y1 AND column2=m1) AND (SELECT
column3 FROM table1 WHERE column9=o AND column1=y2
AND column2=m2) ORDER BY 1,2;

BEGIN
o:=''xxx'';
y2:=2002;
m2=7;

OPEN c(o,y1,m1,y2,m2);
CLOSE c;

RETURN TRUE;
END;' LANGUAGE 'plpgsql';
======================
database=# select test(2002,5);
NOTICE: plpgsql: ERROR during compile of test near
line 17
ERROR: mismatched parentheses

--------------------------------------------------------
You too can have your own email address from Eurosport.
http://www.eurosport.com

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: cn (#1)
Re: plpgsql Cursor Mismatched Parentheses

<cnliou@eurosport.com> writes:

OPEN c(o,y1,m1,y2,m2);

database=# select test(2002,5);
NOTICE: plpgsql: ERROR during compile of test near
line 17
ERROR: mismatched parentheses

I broke this case shortly before 7.2 release, and it didn't get detected
till after :-(. If you want to recompile, you can replace
src/pl/plpgsql/src/gram.y with version 1.29.2.1, see
http://developer.postgresql.org/cvsweb.cgi/pgsql/src/pl/plpgsql/src/gram.y

regards, tom lane