Re: PL/pgSQL RENAME functionality in TODOs
От | Tom Lane |
---|---|
Тема | Re: PL/pgSQL RENAME functionality in TODOs |
Дата | |
Msg-id | 8906.1170289705@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: PL/pgSQL RENAME functionality in TODOs (imad <immaad@gmail.com>) |
Ответы |
Re: PL/pgSQL RENAME functionality in TODOs
|
Список | pgsql-hackers |
imad <immaad@gmail.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? regards, tom lane
В списке pgsql-hackers по дате отправления: