Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql) / 4 сообщений из 4, страница 1 из 1
18.06.2020, 16:39
    #39970580
person1534
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
Здравствуйте, товарищи :)


Провел некоторое время, забавляясь с синтаксисом \if и проверкой LAST_ERROR_SQLSTATE

\if (:'LAST_ERROR_SQLSTATE' = '00000')
\if (:'LAST_ERROR_SQLSTATE' == '00000')
\if (:'LAST_ERROR_SQLSTATE' != '00000')
\if (:'LAST_ERROR_SQLSTATE' <> '00000')

Все эти смелые попытки были интерпретатором категорически отвергнуты, вероятно, синтаксис подкачал :)

Я пришел к следующей форме:

SELECT (:'LAST_ERROR_SQLSTATE' = '00000') AS mysqlstate \gset

\if :mysqlstate

которая интерпретатор удивительным образом устроила. Я чувствую, что что-то здесь не так. Толи нужно принудительно типы преобразовывать, толи еще чего.

Как правильно то?

Заранее спасибо.

С уважением.
...
Рейтинг: 0 / 0
18.06.2020, 16:47
    #39970583
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
person1534,

Всё верно сделали. \if условие проверяет только на логическое значение записанное в текстовом виде: on/off, true/false, 1/0.
Сама конструкция \if не умеет вычислять выражение, это нужно сделать заранее, как в вашем примере select c \gset.
...
Рейтинг: 0 / 0
18.06.2020, 17:05
    #39970591
person1534
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
Павел,


Спасибо, но я точно помню, что я видел в Инете примеры \if c какими-то C-style выражениями. Сейчас я соображаю, что, возможно, это были примеры для какого-то fork'а проекта PostgreSQL.

Вообще обидно :(
...
Рейтинг: 0 / 0
18.06.2020, 17:17
    #39970592
Павел Лузанов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql)
person1534,

Я в документации на команду \if смотрю. Там и пример есть, практически такой же.
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Синтаксис \if для проверки LAST_ERROR_SQLSTATE (psql) / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]