On Wed, Jan 18, 2012 at 8:38 AM, <kn...@ipa.fraunhofer.de> wrote: > The following bug has been logged on the website: > > Bug reference: 6400 > Logged by: Sandra Knoch > Email address: kn...@ipa.fraunhofer.de > PostgreSQL version: 9.0.6 > Operating system: Windows Server 2007 SP2 > Description: > > I have a strange problem regarding functions with parameters. The parameters > are not accepted and I always get the error column "user" does not exist, > where user is the parameter name and not a column. The function looks like > this: > > CREATE OR REPLACE FUNCTION tissue.insert_biopsy_data > ( > "user" integer, > in_date date, > in_description varchar, > in_weight numeric, > in_size numeric > ) > RETURNS integer AS > $$ > declare > result integer; > begin > INSERT INTO tissue.biopsy (id_biopsy, f_user,introduction_date, > description, weight, size) > VALUES > ( > DEFAULT, > user, > in_date, > in_description, > in_weight, > in_size > ); > SELECT id_biopsy FROM tissue.biopsy INTO result; > Return result; > end > $$ > LANGUAGE 'plpgsql' > VOLATILE > CALLED ON NULL INPUT > SECURITY INVOKER > COST 100; > > It works with my old PostgreSQL 8.4 version, but not with the new one. What > is the problem here? Why is the argument not recognized as argument but as a > column name? Thank you for any help!
There were some changes in the way variable references are resolved in PL/pgsql in version 9.0; unfortunately, you seem to have run across one of the cases where the new behavior requires more quoting than the old one did. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs