pl/pgsql feature request: shorthand for argument and local variable references

Поиск
Список
Период
Сортировка
От Jack Christensen
Тема pl/pgsql feature request: shorthand for argument and local variable references
Дата
Msg-id CAMovtNo5z_YjreoZVXoviXGTF=wsAsi4LnW_VBiR2ZmKuGqhwg@mail.gmail.com
обсуждение исходный текст
Ответы Re: pl/pgsql feature request: shorthand for argument and local variable references
Список pgsql-hackers
When arguments and other local variables in pl/pgsql functions have the same name as columns referenced in queries it is necessary to disambiguate the names. This can be done by prefixing the function name (e.g. my_func.name), using the argument number is the case of an argument (e.g. $1), or renaming the variable (e.g. _name). It is also possible to use a GUC to always use the variable or the column but that seems dangerous to me.

Prefixing names with an underscore works well enough for local variables, but when using named arguments I prefer the external name not require an underscore. I would like to suggest a standard prefix such as $ to reference a local variable or argument. $ followed by an integer already references an argument by ordinal. What if $ followed by a name meant a local reference (essentially it would expand to "my_func.")?

For example, currently I have to do something like this:

create function update_item(id int, foo int, bar text) returns void
language plpgsql as $$
begin
  update items
  set foo = update_item.foo,
    bar = update_item.bar
  where items.id = update_item.id;
end;
$$;


I would like to be able to do something like:

create function update_item(id int, foo int, bar text) returns void
language plpgsql as $$
begin
  update items
  set foo = $foo,
    bar = $bar
  where items.id = $id;
end;
$$;


Any opinions on the desirability of this feature? My C skills are rather atrophied, but from the outside it seems like a small enough change I might be able to tackle it...

Jack

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Peter Geoghegan
Дата:
Сообщение: Re: Deleting older versions in unique indexes to avoid page splits
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Hash support for row types