Hi,
I'm getting quite impressed with postgresql, but in the other end quite
disappointed with plpgsql...
I've been working successfully with postgresql 7.1.2, but I cannot use my
actual plpgsql in 7.2.1 (details bellow).
I wonder if there is already support for returning a rowset directly
(without that return cursor pointer workaround)?
Thanks in advance.
Rui
Parser error with many arguments:
----- example code:
DROP FUNCTION devUsersUpdate (INTEGER, VARCHAR, VARCHAR, VARCHAR, VARCHAR,
VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR);
CREATE FUNCTION devUsersUpdate (INTEGER, VARCHAR, VARCHAR, VARCHAR, VARCHAR,
VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR, VARCHAR)
RETURNS INTEGER AS '
DECLARE
intId ALIAS FOR $1;strLogin ALIAS FOR $2;strPassword ALIAS FOR $3;strEmail ALIAS FOR $4;strTitle ALIAS FOR
$5;strFirstNameALIAS FOR $6;strLastName ALIAS FOR $7;strDateCreation ALIAS FOR $8;strDateLastAccess ALIAS FOR
$9;strAccLockedALIAS FOR $10;strAccDisabled ALIAS FOR $11;strPasswdChallenge ALIAS FOR $12;strPasswdChallengeResponse
ALIASFOR $13;
BEGIN
UPDATE TS_USERS SET LOGIN = strLogin, EMAIL = strEmail, TITLE = strTitle, FIRST_NAME =
strFirstName, LAST_NAME = strLastName, DATE_CREATION = TIMESTAMP (strDateCreation), DATE_LAST_ACCESS = TIMESTAMP
(strDateLastAccess),ACC_LOCKED =
strAccLocked, ACC_DISABLED = strAccDisabled, PASSWD_CHALLENGE = strPasswdChallenge, PASSWD_CHALLENGE_RESPONSE =
strPasswdChallengeResponseWHEREID = intId;
RETURN 1;
END;
' LANGUAGE 'plpgsql';
-------
While not reaching the limit of arguments, this function, when called, gives
me this error:
Query error [SELECT devUsersUpdate ('1', 'root', '', 'root@somehost.com',
'', 'Super', 'User', '0001-01-01', '0001-01-01', 'N', 'N', '', '')]: ERROR:
parser: parse error at or near "$6"
which, by the way, didn't happened in postgresql 7.1.2...
Anyone had this problem or knows the answer to it?