Skip site navigation (1) Skip section navigation (2)

Re: PL/pgSQL RENAME functionality in TODOs

From: imad <immaad(at)gmail(dot)com>
To: "Tom Lane" <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: "Bruce Momjian" <bruce(at)momjian(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PL/pgSQL RENAME functionality in TODOs
Date: 2007-02-01 09:15:19
Message-ID: 1f30b80c0702010115i6760440ei38fa91b8a3386c4c@mail.gmail.com (view raw or flat)
Thread:
Lists: pgsql-hackers
On 2/1/07, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> imad <immaad(at)gmail(dot)com> writes:
> > OK, so renaming does not work in the same block.
> > You can rename a vairable in a nested block and thats why it works for OLD/NEW.
>
> > BTW, what is the purpose behind it? Declaring a variable in a block
> > and quickly renaming it does not make sense to me.
>
> I agree it's pretty useless; but if we're gonna forbid it then we should
> throw a more sensible error than "syntax error".
>
> Actually, it seems to me that it works in the nested-block case only for
> rather small values of "work":
>
> regression=# create function foo() returns int as $$
> regression$# declare
> regression$# x int := 1;
> regression$# begin
> regression$#  x := 2;
> regression$#  declare
> regression$#   rename x to y;
> regression$#  begin
> regression$#    y := 3;
> regression$#  end;
> regression$#  return x;
> regression$# end$$ language plpgsql;
> CREATE FUNCTION
> regression=# select foo();
> ERROR:  column "x" does not exist
> LINE 1: SELECT  x
>                 ^
> QUERY:  SELECT  x
> CONTEXT:  PL/pgSQL function "foo" line 10 at return
> regression=#
>
> Surely the variable's name should be x again after we're out of the
> nested block?

Yes, seems to be the only possible reason of renaming a variable.


--Imad
www.EnterpriseDB.com

In response to

pgsql-hackers by date

Next:From: Jignesh K. ShahDate: 2007-02-01 09:54:24
Subject: Re: fixing Makefile.shlib for solaris/gcc with -m64 flag
Previous:From: Zeugswetter Andreas ADI SDDate: 2007-02-01 09:12:07
Subject: Re: "May", "can", "might"

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group