PRAGMA

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

Синтаксис

PRAGMA x.y = "z"; или PRAGMA x.y("z", "z2", "z3");:

  • x — (опционально) категория настройки.
  • y — название настройки.
  • z — (опционально для флагов) значение настройки. Допустимо использование следующих суффиксов:
    • Kb, Mb, Gb — для объема информации.
    • sec, min, h, d — для временных значений.

За некоторым исключением, значение настроек можно вернуть в состояние по умолчанию с помощью PRAGMA my_pragma = default;.

Пример

PRAGMA AutoCommit;

Список доступных PRAGMA в YQL

Глобальные

Название Тип значения По умолчанию Описание
AutoCommit Флаг false Автоматически выполнять COMMIT после каждого запроса.
SimpleColumns Флаг false При использовании SELECT foo.* FROM ... AS foo убрать префикс foo. у имен результирующих столбцов.

Работает в том числе и для JOIN, но, чтобы избежать конфликта имен, необходимо использовать WITHOUT или переименовать столбцы через AS.
TablePathPrefix Строка Добавить указанный префикс к путям таблиц внутри кластеров. Работает по принципу объединения путей в файловой системе: поддерживает ссылки на родительский каталог .. и не требует добавления / справа.
Пример
PRAGMA TablePathPrefix = "home/yql"; SELECT * FROM test;

Префикс не добавляется, если имя таблицы указано как абсолютный путь (начинается с /).
Warning 1. Действие
2. Код предупреждения или символ *
Действие:
  • disable — отключить.
  • error — приравнять к ошибке.
  • default — вернуть поведение по умолчанию.
Код предупреждения возвращается вместе с самим текстом (в консоли отображается справа).
Пример
PRAGMA Warning("error", "*");
PRAGMA Warning("disable", "1101");
PRAGMA Warning("default", "4503");
В данном случае все предупреждения будут считаться ошибками, за исключением предупреждение 1101, которое будет отключено, и 4503, которое будет обрабатываться по умолчанию (останется предупреждением).
ClassicDivision Флаг true По умолчанию результат целочисленного деления остается целочисленным.
Если отключить — результат всегда становится Double.
AllowDotInAlias Флаг false Разрешить использовать точку в именах результирующих столбцов. По умолчанию false, так как дальнейшее использование таких колонок в JOIN полностью не реализовано.
GroupByLimit Положительное число 32 Увеличение лимита на число группировок в GROUP BY.
GroupByCubeLimit Положительное число 5 Увеличение лимита на число размерностей GROUP BY CUBE.

Необходимо учитывать, что вычислительная сложность запроса растет экспоненциально по отношению к числу размерностей.
kikimr.IsolationLevel Serializable, ReadCommitted, ReadUncommitted или ReadStale Serializable Экспериментальная PRAGMA. Позволяет ослабить уровень изоляции текущей транзакции в YDB.