Re: Variable substitution in psql backtick expansion

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Variable substitution in psql backtick expansion
Дата
Msg-id CAFj8pRAOZvoO4gVS1uioo1eUE7+EmzfdkdacQsejMrPHwZZrog@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Variable substitution in psql backtick expansion  (Fabien COELHO <coelho@cri.ensmp.fr>)
Ответы Re: Variable substitution in psql backtick expansion
Список pgsql-hackers


2017-04-03 21:24 GMT+02:00 Fabien COELHO <coelho@cri.ensmp.fr>:

Hello Tom,

  \if [select current_setting('server_version_num')::int < 110000]

I really dislike this syntax proposal.

It would get us into having to count nested brackets, and distinguish quoted from unquoted brackets, and so on ... and for what?  It's not really better than

  \if sql select 1 from pg_catalog.pg_extension where extname='pgcrypto'

Hmmm. On the positive side, it looks more expression-like, and it allows to think of handling a multi-line expression on day.

ISTM that the lexer already counts parentheses, so maybe using external parentheses might work without much effort?

(ie, "\if sql ...text to send to server...").

If you're worried about shaving keystrokes, make the "select" be implicit.
That would be particularly convenient for the common case where you're
just trying to evaluate a boolean expression with no table reference.

I'm looking for a solution to avoid the suggested "sql" prefix, because "I really dislike this proposal", as you put it.


The expression evaluation is interesting question, but there is a workaround - we can use \gset already.

What is more important, because there is not any workaround, is detection if some variable exists or not.

So possibilities

1. \if defined varname
2. \ifdefined or \ifdef varname 
3. \if :?varname

I like first two, and I can live with @3 - although it is not intuitive 

Regards

Pavel

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

Предыдущее
От: Andrew Gierth
Дата:
Сообщение: Re: Instead of DROP function use UPDATE pg_proc in an upgrade extension script
Следующее
От: Pavan Deolasee
Дата:
Сообщение: Re: Patch: Write Amplification Reduction Method (WARM)