RE: bug in psql?

Поиск
Список
Период
Сортировка
От Aleksey M Boltenkov
Тема RE: bug in psql?
Дата
Msg-id 1597474313.828133.30766.37520@mail.rambler.ru
обсуждение исходный текст
Ответ на RE: bug in psql?  ("Aleksey M Boltenkov" <holybolt@rambler.ru>)
Список pgsql-general
15.08.2020, 09:46, Aleksey M Boltenkov <holybolt@rambler.ru>
15.08.2020, 08:56, Tom Lane <tgl@sss.pgh.pa.us>
"Aleksey M Boltenkov" <holybolt@rambler.ru> writes:
> Is this a bug?

> pg01:5432 postgres@db=# select 'any expression'any expression\d+;

No.   The "\d+;" is taken as a backslash command, and is executed.
The rest of what you typed is still waiting in the query buffer.

It's bit weird perhaps, since \d seems like a "do-something"
command rather than a query buffer editing command.   But
psql uses the same rules for both cases.

                          regards, tom lane
Yes, i have used it for a long, but it was always wellformed, so malformed query was some kind of surprise.

select format('insert into x.y ( field, ... ) select val, ... from %I.%I on conflict ( constraint ) do nothing;\dti+ x.y*', (regexp_match(tablename, '\d[\d_]+$'))[1], schemaname, tablename) from pg_tables where schemaname = 'x' and tablename ~ '^y' order by 1;

insert into x.y ( field, ... ) select '2020_07_29'::date, field, ... from x.y_archive_2020_07_29 on conflict ( constraint ) do nothing;\dti+ x.y_new_scheme*
insert into x.y ( field, ... ) select '2020_08_05'::date, field, ... from x.y_archive_2020_08_05 on conflict ( constraint ) do nothing;\dti+ x.y_new_scheme*
insert into x.y ( field, ... ) select '2020_08_12'::date, field, ... from x.y_archive_2020_08_12 on conflict ( constraint ) do nothing;\dti+ x.y_new_scheme*

\gexec



Aleksey M Boltenkov.

Sorry, \gexec does not work, copy and paste.

Aleksey M Boltenkov.


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

Предыдущее
От: Pavel Stehule
Дата:
Сообщение: Re: bug in psql?
Следующее
От: "Aleksey M Boltenkov"
Дата:
Сообщение: RE: bug in psql?