Re: plpgsql + named parameters - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: plpgsql + named parameters
Date
Msg-id 162867790905201024h7473cbd4x5d591c057b4c58e1@mail.gmail.com
Whole thread Raw
In response to Re: plpgsql + named parameters  (Steve Prentice <prentice@cisco.com>)
Responses Re: plpgsql + named parameters  (Steve Prentice <prentice@cisco.com>)
List pgsql-hackers
2009/5/20 Steve Prentice <prentice@cisco.com>:
>        t := fun1(1 as a);      -- syntax error: "SELECT  fun1(1 as  $1 )"
>
>        t := fun1(a as a);      -- syntax error: "SELECT  fun1( $1  as  $1 )"
>
> On May 19, 2009, at 6:42 PM, Merlin Moncure wrote:
>
> you have a name conflict here...is it deliberate? I've learned the
> hard way to always, always prefix arguments and locals to plpgsql
> functions with '_'.  Or are you trying to do something fancier?
>
> The conflict is deliberate to illustrate the limitations the named parameter
> feature (on the list for the first 8.5 CommitFest) is going to have if
> parameter substitution is not addressed at the same time.
> -Steve

this problem is little bit deeper and is related to plpgsql method for
SQL query processing.

I thing so there are two solutions:

a) use dynamic SQL
b) use double quotes for identifier - identifiers have to be lower

t := fun1(a as "a");

regards
Pavel Stehule


pgsql-hackers by date:

Previous
From: Steve Prentice
Date:
Subject: Re: plpgsql + named parameters
Next
From: Simon Riggs
Date:
Subject: Feedback on writing extensible modules