plpgsql + named parameters - Mailing list pgsql-hackers

From Steve Prentice
Subject plpgsql + named parameters
Date
Msg-id 23C802EC-965D-494E-BE2F-39D604A51785@cisco.com
Whole thread Raw
Responses Re: plpgsql + named parameters  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-hackers
I followed the past discussions regarding the syntax for named  
parameters and I am currently using Pavel Stehule's patch for named  
and mixed notation on top of the 8.4 beta.

It seems the way plpgsql substitutes $1, $2, etc for the parameters is  
going to reduce the usefulness of this feature. Consider these two  
functions:

CREATE FUNCTION fun1(a INT DEFAULT 1) RETURNS INT AS 'SELECT $1'  
LANGUAGE SQL;
CREATE FUNCTION fun2(a INT) RETURNS INT AS $$
DECLAREt INT;
BEGINt := fun1(1 as a);    -- syntax error: "SELECT  fun1(1 as  $1 )"t := fun1(a as a);    -- syntax error: "SELECT
fun1($1  as  $1 )"RETURN 0;
 
END;
$$ LANGUAGE plpgsql;

I would think this would be a very common scenario where one function  
calls another similar function that has similar parameter names.

Am I missing something or are there any obvious solutions to this?

Pavel's patch:
http://archives.postgresql.org/message-id/162867790903042341o477b115dtb6b351dd8ff758cc@mail.gmail.com

Thanks,
-Steve



pgsql-hackers by date:

Previous
From: Adriano Lange
Date:
Subject: Re: GEQO: ERX
Next
From: Merlin Moncure
Date:
Subject: Re: plpgsql + named parameters