From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp52.i.mail.ru (smtp52.i.mail.ru [94.100.177.112]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dev.tarantool.org (Postfix) with ESMTPS id 68190469719 for ; Tue, 17 Mar 2020 01:53:32 +0300 (MSK) References: <80558927f63a1ad49a4b7c699bfff0bedd727a11.1581940900.git.k.sosnin@tarantool.org> <20200316160842.GG14628@tarantool.org> From: Vladislav Shpilevoy Message-ID: <10819f60-76f1-988c-79be-eb70c2667af5@tarantool.org> Date: Mon, 16 Mar 2020 23:53:30 +0100 MIME-Version: 1.0 In-Reply-To: <20200316160842.GG14628@tarantool.org> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Subject: Re: [Tarantool-patches] [PATCH 3/4] box: provide a user friendly frontend for accessing session settings List-Id: Tarantool development patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Nikita Pettik , Chris Sosnin Cc: tarantool-patches@dev.tarantool.org On 16/03/2020 17:08, Nikita Pettik wrote: > On 17 Feb 15:12, Chris Sosnin wrote: >> - space_object:update() is hard to use for configuring session settings, >> so we provide box.session.setting table, which can be used in a much more >> native way. >> >> - Prior to this patch sql settings were not accessible before box.cfg() >> call, even though these flags can be set right after session creation. >> >> Part of #4711 >> --- > > tarantool> box.session.settings.sql_vdbe_debug > --- > - false > ... > > tarantool> box.session.settings.sql_vdbe_debug = true > --- > ... > > tarantool> box.session.settings.sql_vdbe_debug > --- > - true > ... Yeah, we can ban this. To avoid confusion. > > tarantool> box.execute("select 1") > --- > - metadata: > - name: '1' > type: integer > rows: > - [1] > ... > > Looks inconsistent. Can we use instead of :set() method simple > table value assignment? Otherwise accessing row table values Assignment would require not to store settings in box.session.settings, to be able to redefine __newindex metamethod. If we don't store them, we kill autocompletion, which was asked explicitly by somebody. But I am on your side here - I don't think autocompletion worth this complication. Who wants to look at existing settings can just print box.sessions.settings table. > should be disallowed. Same concerns :get() method. Why ever > anyone should bother with :get() when one can access table value > via simple indexing? Hm. But there is no :get() method. We didn't implement getting, because no one asked for this. And indeed, usually you just set settings, without checking if set really worked. I was thinking we could introduce get if someone asks for that. But up to you. Can be added now as well.