Re: proposal - assign result of query to psql variable

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: proposal - assign result of query to psql variable
Дата
Msg-id CAFj8pRDz8K60dhuXjzPiTmDnNzwV3N2AKjfvah8zLzcF3EJ=vA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: proposal - assign result of query to psql variable  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: proposal - assign result of query to psql variable
Список pgsql-hackers
2012/10/25 Tom Lane <tgl@sss.pgh.pa.us>:
> Alvaro Herrera <alvherre@2ndquadrant.com> writes:
>> I gave this a look.  I think it needs to be revised by somebody with a
>> better understanding of scanner (flex) than me, but I didn't like the
>> changes in psqlscan.l at all; the new <xvl> pattern is too unlike the
>> rest of the surrounding patterns, and furthermore it has been placed
>> within the block that says it mirrors the backend scanner, when it
>> obviously has no equivalent there.
>
>> I assume there's a better way to do this.  Hints would be appreciated.
>
> Personally I saw no reason for this patch to touch psqlscan.l in the
> first place.  Commands such as \set just scan variable names with
> psql_scan_slash_option(OT_NORMAL); why shouldn't this act the same?
>

it cannot be same, because current scan doesn't know comma as
separator. So if you don't like changes in scanner, than we can't to
use "var1, var2," syntax and we can't to use leaky list syntax ",x,"

> Moreover, the proposed lexer rules are flat out *wrong*, in that they
> insist on the target variable names being {identifier}s, a restriction
> not imposed by \set.
>

do you like to support referenced varnames??

postgres=# \varname xxx
Invalid command \varname. Try \? for help.
postgres=# \set varname xxx
postgres=# \set :varname Hello
postgres=# \set
varname = 'xxx'
xxx = 'Hello'

yes, \set support it, but this can be source of "strange behave" for
some people, because people use :varname like $varname in classic
scripting languages, and it is significantly different - so I didn't
support it as little bit dangerous feature. It is easy support it,
although I am thinking, so it is not good idea, because behave is
really different than users expect and I don't know any use case for
this indirect referencing. But I would to talk about it, and I invite
opinion of others.

Regards

Pavel


>                         regards, tom lane



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

Предыдущее
От: Amit kapila
Дата:
Сообщение: Re: [WIP PATCH] for Performance Improvement in Buffer Management
Следующее
От: Tom Lane
Дата:
Сообщение: Re: proposal - assign result of query to psql variable