Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3 - Mailing list pgsql-hackers

From Steve Prentice
Subject Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3
Date
Msg-id 6B1D3BCA-1D65-42A0-9696-38B8FC5C7DD5@cisco.com
Whole thread Raw
In response to Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3
Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3
List pgsql-hackers
On Sep 13, 2009, at 10:22 PM, Pavel Stehule wrote:

> 2009/9/14 Tom Lane <tgl@sss.pgh.pa.us>:
>> Robert Haas <robertmhaas@gmail.com> writes:
>>> So, I guess I'm sadly left feeling that we should probably reject  
>>> this
>>> patch.  Anyone want to argue otherwise?
>>
>> +1.  I'm really hoping to get something done about the plpgsql  
>> parsing
>> situation before 8.5 is out, so this should be a dead end anyway.
>>
>
> I have a WIP patch for integration main SQL parser to plpgsql. I'll
> send it to this weekend.

I certainly don't mind the patch getting rejected and agree that  
refactoring the plpgsql parser is probably the best approach to this  
issue. However, I think it would be more than a little strange to ship  
the named notation feature without a solution for this problem. For  
reference, the problem is that the function below causes a compile  
error because of the way plpgsql blindly does variable replacement:

create function fun1(pDisplayName text) returns void as $$
begin    perform fun2(pDisplayName as pDisplayName);
-- Above line compiles as:
--  SELECT  fun2( $1  as  $1 )
end
$$ language plpgsql;

-Steve


pgsql-hackers by date:

Previous
From: Jeff Janes
Date:
Subject: Re: Patch LWlocks instrumentation
Next
From: Robert Haas
Date:
Subject: Re: [PATCH] 8.5 plpgsql change for named notation: treat word following AS keyword as label v3