session_settings
Временное системное пространство с настройками, влияющими на поведение,
в частности на поведение SQL, для текущего сеанса. Оно использует
специальный движок с именем 'service'. Каждый кортеж 'service'
создается на лету, то есть новые кортежи формируются при каждом
обращении к _session_settings. Каждый кортеж настроек содержит два
поля: name (первичный ключ) и value. Имена и значения по умолчанию
для кортежей:
sql_default_engine: движок хранения по умолчанию для новых SQL-таблиц. Значение по умолчанию:memtx.sql_full_column_names: использовать полные имена колонок в метаданных результирующего набора SQL. Значение по умолчанию:false.sql_full_metadata: определяет, включают ли метаданные результирующего набора SQL больше, чем только имя и тип. Значение по умолчанию:false.sql_parser_debug: показывать шаги парсера для последующих операторов. Значение по умолчанию:false.sql_recursive_triggers: определяет, может ли вызванный оператор активировать триггер. Значение по умолчанию:true.sql_reverse_unordered_selects: возвращать строки результата в обратном порядке, если отсутствует предложение ORDER BY. Значение по умолчанию:false.sql_select_debug: показывать шаги выполнения во время SELECT. Значение по умолчанию:false.sql_seq_scan: разрешить последовательное сканирование в SQL SELECT. Значение по умолчанию:true.sql_vdbe_debug: для внутреннего использования. Значение по умолчанию:false.sql_defer_foreign_keys(удален в 2.11.0): определяет, могут ли проверки внешних ключей быть отложены до коммита. Значение по умолчанию:false.error_marshaling_enabled(удален в 2.10.0): определяет, имеют ли объекты ошибок специальную структуру. Значение по умолчанию:false.
Возможны три запроса:
select,
get и
update. Например, после s = box.space._session_settings вызов
s:select('sql_default_engine') вероятно вернет
{'sql_default_engine', 'memtx'}, а
s:update('sql_default_engine', {{'=', 'value', 'vinyl'}}) изменит
движок по умолчанию на 'vinyl'.
Изменение значений
sql_parser_debug, sql_select_debug или sql_vdbe_debug не дает
эффекта, если только Tarantool не собран с параметром
-DCMAKE_BUILD_TYPE=Debug. Чтобы проверить это, посмотрите значение
require('tarantool').build.target.