From: Peter Gulutzan <pgulutzan@ocelot.ca> To: tarantool-patches@dev.tarantool.org Subject: [Tarantool-patches] [PATCH 0/4] session settings fixes Date: Fri, 3 Apr 2020 11:09:21 -0600 [thread overview] Message-ID: <8dc7be67-fc78-dd42-0634-83692259f0a5@ocelot.ca> (raw) Hi, Re: SETTING SET "sql_default_engine" = 'memtx'; Adding a new reserved word SETTING, without advance notice, should be against policy. It causes a slight risk of breaking an existing application. I had hoped for UPDATE _SETTINGS_DEFAULT_ENGINE SET VALUE = 'memtx'; I claim that is just as "user friendly" -- it adds two words, but it removes quotation marks. And it does not require that users learn new syntax because UPDATE ... SET is well known. Notice that I can already do this -- almost. This is legal: CREATE VIEW _SETTINGS_DEFAULT_ENGINE AS SELECT "value" AS value FROM "_session_settings" WHERE "name" = 'sql_default_engine'; The flaw is that views are not updatable. But I don't regard that as a big problem because this is not a proposal to make all views updatable. It only requires: when you see that exact UPDATE statement, transform it to box.session._settings:update. And similarly for sql_defer_foreign_keys etc. Alternatively, users could create a Lua function X which updates _session_settings, vaguely like this box.schema.func.create('X', {language = 'LUA', returns = 'string', body = [[function () box.space._session_settings:update('sql_default_engine', {{'=', 2, 'memtx'}}); return 'memtx changed' end]], is_sandboxed = false, exports = {'LUA', 'SQL'}, is_deterministic = true}) then allow this SQL syntax: CALL X(); Again, I claim that this is just as "user friendly" because -- as far as I can tell -- some people think saving keystrokes is the same as being friendly. Nikita Pettik explained that issue#4711 is for a shortcut and that is short. Eventually we will probably want to support CALL anyway, and it is already a reserved word. Thus there are "user-friendly" alternatives that do not require new proprietary syntax. Peter Gulutzan
next reply other threads:[~2020-04-03 17:09 UTC|newest] Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-04-03 17:09 Peter Gulutzan [this message] 2020-04-03 18:11 ` Timur Safin 2020-04-07 16:32 ` Chris Sosnin 2020-04-08 9:40 ` Timur Safin 2020-04-08 15:03 ` Peter Gulutzan 2020-04-08 14:36 ` Peter Gulutzan -- strict thread matches above, loose matches on Subject: below -- 2020-03-30 9:13 Chris Sosnin 2020-04-02 9:14 ` Timur Safin 2020-04-02 10:18 ` Chris Sosnin 2020-04-03 12:47 ` Nikita Pettik 2020-04-03 13:09 ` Nikita Pettik 2020-04-03 14:02 ` Chris Sosnin 2020-04-13 14:18 ` Kirill Yukhin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=8dc7be67-fc78-dd42-0634-83692259f0a5@ocelot.ca \ --to=pgulutzan@ocelot.ca \ --cc=tarantool-patches@dev.tarantool.org \ --subject='Re: [Tarantool-patches] [PATCH 0/4] session settings fixes' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox