×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

5.9.9. Вспомогательные функции

Модуль plpy модуль также предоставляет функции

plpy.debug(msg, **kwargs)
plpy.log(msg, **kwargs)
plpy.info(msg, **kwargs)
plpy.notice(msg, **kwargs)
plpy.warning(msg, **kwargs)
plpy.error(msg, **kwargs)
plpy.fatal(msg, **kwargs)

plpy.error и plpy.fatal фактически вызывают исключение Python, которое, если оно не перехвачено, передается в вызывающий запрос, что приводит к отмене текущей транзакции или подтранзакции. raise plpy.Error(msg) и raise plpy.Fatal(msg) эквивалентны вызову plpy.error(msg) и plpy.fatal(msg)соответственно, однако форма raise не позволяет передавать именованные аргументы. Остальные функции лишь генерируют сообщения различных уровней важности. Будут ли сообщения определенного уровня выводиться клиенту, записываться в журнал сервера или и то, и другое, определяется log_min_messages и client_min_messages конфигурационными переменными. См. Глава 3.4 для получения дополнительной информации.

Модуль msg аргумент передается как позиционный аргумент. Для обратной совместимости может быть указано более одного позиционного аргумента. В этом случае строковое представление кортежа позиционных аргументов становится сообщением, передаваемым клиенту.

Принимаются следующие именованные аргументы (keyword-only):

detail
hint
sqlstate
schema_name
table_name
column_name
datatype_name
constraint_name

Строковое представление объектов, переданных в качестве именованных аргументов, используется для дополнения сообщений, передаваемых клиенту. Например:

CREATE FUNCTION raise_custom_exception() RETURNS void AS $$
plpy.error("custom exception message",
           detail="some info about exception",
           hint="hint for users")
$$ LANGUAGE plpython3u;

=# SELECT raise_custom_exception();
ERROR:  plpy.Error: custom exception message
DETAIL:  some info about exception
HINT:  hint for users
CONTEXT:  Traceback (most recent call last):
  PL/Python function "raise_custom_exception", line 4, in 
    hint="hint for users")
PL/Python function "raise_custom_exception"

Еще одним набором вспомогательных функций являются plpy.quote_literal(строка), plpy.quote_nullable(строка), и plpy.quote_ident(строка). Они эквивалентны встроенным функциям экранирования, описанным в Раздел 2.6.4. Они полезны при формировании произвольных запросов. Аналогом динамического SQL из раздела ... на языке PL/Python Пример 5.6.1 будет:

plpy.execute("UPDATE tbl SET %s = %s WHERE key = %s" % (
    plpy.quote_ident(colname),
    plpy.quote_nullable(newvalue),
    plpy.quote_literal(keyvalue)))

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению