_session_settings
is a temporary system space with a list of settings that
may affect behavior, particularly SQL behavior, for the current session.
It uses a special engine named ‘service’.
Every ‘service’ tuple is created on the fly, that is, new tuples are made every time _session_settings
is accessed.
Every settings tuple has two fields: name
(the primary key) and value
.
The tuples’ names and default values are:
error_marshaling_enabled
: whether
error objects have
a special structure. Default = false.
sql_default_engine
: default storage engine for new SQL tables. Default = ‘memtx’.
sql_defer_foreign_keys
: whether foreign-key checks can wait till commit. Default = false.
sql_full_column_names
: no effect at this time. Default = false.
sql_full_metadata
: whether SQL result set metadata will have more than just name and type. Default = false.
sql_parser_debug
: whether to show parser steps for following statements. Default = false.
sql_recursive_triggers
: whether a triggered statement can activate a trigger. Default = true.
sql_reverse_unordered_selects
: whether result rows are usually in reverse order if there is no ORDER BY clause. Default = false.
sql_select_debug
: whether to show execution steps during SELECT. Default = false.
sql_vdbe_debug
: for use by Tarantool’s developers. Default = false.
Three requests are possible: select and get and update.
For example, after s = box.space._session_settings
,
s:select('sql_default_engine')
probably returns {'sql_default_engine', 'memtx'}
, and
s:update('sql_default_engine', {{'=', 'value', 'vinyl'}})
changes the default engine to ‘vinyl’.
Updating sql_parser_debug
or sql_select_debug
or sql_vdbe_debug
has no effect unless
Tarantool was built with -DCMAKE_BUILD_TYPE=Debug. To check if this is so, look at
require('tarantool').build.target
.