Re: Allow COMMENT ON to accept an expression rather than just a string - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Allow COMMENT ON to accept an expression rather than just a string
Date
Msg-id 162867790904111146p5a632117j6c47e5d28577ab5c@mail.gmail.com
Whole thread Raw
In response to Re: Allow COMMENT ON to accept an expression rather than just a string  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
2009/4/11 Tom Lane <tgl@sss.pgh.pa.us>:
> Pavel Stehule <pavel.stehule@gmail.com> writes:
>> But the proc
>> CREATE OR REPLACE FUNCTION some_proc(tabname varchar)
>> RETURNS void AS $$
>> BEGIN
>>   EXECUTE 'CREATE TABLE $1(a integer)' USING tabname;
>
>> is more readable than EXECUTE 'CREATE TABLE ' || tabname || '(....
>
> I was intentionally excluding the idea of substituting parameters for
> names as opposed to constants.  For one thing it's fundamentally
> ambiguous --- given
>
>        string_var := 'foo';
>
>        EXECUTE 'SELECT $1 FROM bar' USING string_var;
>
> is that supposed to mean SELECT 'foo' FROM bar or SELECT foo FROM bar?
>
> The other problem is that if you allow name substitution it becomes
> entirely impossible to do any planning or even validity checking before
> the parameter values are available.  So while string assembly is kind
> of a pain in the rear when you really do need a dynamic name reference,
> I think we should keep it firmly separate from parameter substitution.
>

+1

>                        regards, tom lane
>


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Allow COMMENT ON to accept an expression rather than just a string
Next
From: Marko Kreen
Date:
Subject: Re: Unicode string literals versus the world