Re: PL/pgSQL RENAME bug? - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: PL/pgSQL RENAME bug?
Date
Msg-id 200204090355.g393tHB16148@candle.pha.pa.us
Whole thread Raw
In response to Re: PL/pgSQL RENAME bug?  (Jan Wieck <janwieck@yahoo.com>)
List pgsql-hackers
Added to TODO:
       o Fix PL/pgSQL RENAME to work on on variable names


---------------------------------------------------------------------------

Jan Wieck wrote:
> Bruce Momjian wrote:
> 
>     Digging  into  it  now,  I  remember  why it is there. In the
>     Oracle world, someone can declare a trigger  that  references
>     to NEW or OLD by other names. This RENAME was a workaround so
>     one doesn't need to change the whole trigger body,  but  just
>     adds a line in the DECLARE section doing the job.
> 
>     Therefore, I think removal is not such a good idea. Fixing it
>     properly will take a little longer as I am a little  busy  at
>     the moment.
> 
> 
> Jan
> 
> > Jan, seems no one has commented on this.  Patch?
> >
> > Jan Wieck wrote:
> > > Tom Lane wrote:
> > > > "Command Prompt, Inc." <pgsql-hackers@commandprompt.com> writes:
> > > > > Mainly, the existing documentation on the RENAME statement seems
> > > > > inaccurate; it states that you can re-name variables, records, or
> > > > > rowtypes. However, in practice, our tests show that attempting to RENAME
> > > > > valid variables with:
> > > > >   RENAME varname TO newname;
> > > > > ...yeilds a PL/pgSQL parse error, inexplicably. If I try the same syntax
> > > > > on a non-declared variable, it actually says "there is no variable" with
> > > > > that name in the current block, so...I think something odd is happening. :)
> > > >
> > > > Yup, this is a bug.  The plpgsql grammar expects varname to be a T_WORD,
> > > > but in fact the scanner will only return T_WORD for a name that is not
> > > > any known variable name.  Thus RENAME cannot possibly work, and probably
> > > > never has worked.
> > > >
> > > > Looks like it should accept T_VARIABLE, T_RECORD, T_ROW (at least).
> > > > T_WORD ought to draw "no such variable".  Jan, I think this is your turf...
> > >
> > >     Sounds pretty much like that. Will take a look.
> > >
> > > >
> > > > > The RENAME statement seems kind of odd, since it seems that you could just
> > > > > as easily declare a general variable with the right name to begin with,
> > > >
> > > > It seems pretty useless to me too.  Perhaps it's there because Oracle
> > > > has one?
> > >
> > >     And  I  don't even remember why I've put it in. Maybe because
> > >     it's an Oracle thing. This would be a cool fix, removing  the
> > >     damned thing completely. I like that solution :-)
> > >
> > >     Anyone against removal?
> > >
> > >
> > > Jan
> > >
> > > --
> > >
> > > #======================================================================#
> > > # It's easier to get forgiveness for being wrong than for being right. #
> > > # Let's break this rule - forgive me.                                  #
> > > #================================================== JanWieck@Yahoo.com #
> > >
> > >
> > >
> > > _________________________________________________________
> > > Do You Yahoo!?
> > > Get your free @yahoo.com address at http://mail.yahoo.com
> > >
> > >
> > > ---------------------------(end of broadcast)---------------------------
> > > TIP 5: Have you checked our extensive FAQ?
> > >
> > > http://www.postgresql.org/users-lounge/docs/faq.html
> > >
> >
> > --
> >   Bruce Momjian                        |  http://candle.pha.pa.us
> >   pgman@candle.pha.pa.us               |  (610) 853-3000
> >   +  If your life is a hard drive,     |  830 Blythe Avenue
> >   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
> >
> 
> 
> --
> 
> #======================================================================#
> # It's easier to get forgiveness for being wrong than for being right. #
> # Let's break this rule - forgive me.                                  #
> #================================================== JanWieck@Yahoo.com #
> 
> 
> 
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
> 
> http://archives.postgresql.org
> 

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: timeout implementation issues
Next
From: Bruce Momjian
Date:
Subject: Re: Solaris ISM Testing