box: add SQL settings to _session_settings
Part of #4511 @TarantoolBot document Title: _session_settings system space The _session_settings system space used to view or change session settings. This space uses a new engine. This allows us to create tuples on the fly when the get() or select() methods are called. This engine does not support the insert(), replace(), and delete() methods. The only way to change the setting value is update(), which can only be used with the "=" operation. Because space creates a tuple on the fly, it allows us to get a tuple without saving it anywhere. But this means that every time we get a tuple from this system space, it is a new tuple, even if they look the same: tarantool> s = box.space._session_settings tarantool> name = 'sql_default_engine' tarantool> s:get({name}) == s:get({name}) --- - false ... Currently, this space contains only SQL settings, since the only session settings are SQL settings. List of currently available session settings: sql_default_engine sql_defer_foreign_keys sql_full_column_names sql_parser_debug sql_recursive_triggers sql_reverse_unordered_selects sql_select_debug sql_vdbe_debug The default values of these settings cannot be changed by the user. Debug settings are disabled by default and can only be enabled in the debug build. Example of usage: tarantool> s = box.space._session_settings -- View session settings values. tarantool> s:get({'sql_default_engine'}) --- - ['sql_default_engine', 'memtx'] ... tarantool> s:select() s:select() --- - - ['sql_default_engine', 'memtx'] - ['sql_defer_foreign_keys', false] - ['sql_full_column_names', false] - ['sql_full_metadata', false] - ['sql_parser_debug', false] - ['sql_recursive_triggers', true] - ['sql_reverse_unordered_selects', false] - ['sql_select_debug', false] - ['sql_vdbe_debug', false] ... tarantool> s:select('sql_g', {iterator='LE'}) --- - - ['sql_full_metadata', false] - ['sql_full_column_names', false] - ['sql_defer_foreign_keys', false] - ['sql_default_engine', 'memtx'] ... -- Change session setting value. tarantool> s:update('sql_default_engine', {{'=', 'value', 'vinyl'}}) --- - ['sql_default_engine', 'vinyl'] ...
Showing
- src/box/errcode.h 1 addition, 0 deletionssrc/box/errcode.h
- src/box/session_settings.h 1 addition, 0 deletionssrc/box/session_settings.h
- src/box/sql.c 5 additions, 0 deletionssrc/box/sql.c
- src/box/sql/build.c 194 additions, 0 deletionssrc/box/sql/build.c
- test/box/gh-4511-access-settings-from-any-frontend.result 204 additions, 34 deletionstest/box/gh-4511-access-settings-from-any-frontend.result
- test/box/gh-4511-access-settings-from-any-frontend.test.lua 86 additions, 19 deletionstest/box/gh-4511-access-settings-from-any-frontend.test.lua
- test/box/misc.result 1 addition, 0 deletionstest/box/misc.result
Loading
Please register or sign in to comment