From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 16 May 2019 11:02:26 +0300 From: Vladimir Davydov Subject: Re: [tarantool-patches] Re: [PATCH 3/4] schema: allow to set sequence for any index part, not just the first Message-ID: <20190516080226.dzjhpjxxvrctqqrw@esperanza> References: <924606cabe248b6d1cb8fb126de2c5638537398d.1557916311.git.vdavydov.dev@gmail.com> <20190516074529.GJ26670@atlas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190516074529.GJ26670@atlas> To: Konstantin Osipov Cc: tarantool-patches@freelists.org List-ID: On Thu, May 16, 2019 at 10:45:29AM +0300, Konstantin Osipov wrote: > * Vladimir Davydov [19/05/15 14:16]: > > Closes #4009 > > > > @TarantoolBot document > > Title: Sequence can now be set for an index part other than the first > > > > Initially one could attach a sequence (aka autoincrement) only to the > > first index part. Now it's possible to attach a sequence to any primary > > index part. The part still must be integer though. > > > > Syntax: > > > > ``` > > box.schema.space.create('test') > > box.space.test:create_index('primary', { > > parts = {{1, 'string'}, {2, 'unsigned'}, {3, 'unsigned'}}, > > sequence = true, sequence_part = 2 > > }) > > box.space.test:insert{'a', box.null, 1} -- inserts {'a', 1, 1} > > > How about allowing column names? We already allow column names in > the parts definition. I don't understand. Do you suggest to match column name with a part number? What for? The user knows index parts - they are right here in the index definition - he can choose one for autoincrement. Actually, this is what the solution team asked for. > > Do we really need a separate sequence_part option, why not make > a scalar (bool = true/false, numeric, string - column number or > id). We do need 'sequence_part', because 'sequence' is already a scalar: int - sequence id string - sequence name true/false - autogenerated sequence An alternative approach would be attaching sequences to columns rather than indexes (i.e. adding them to tuple_format), but that would require massive rework of autoincrement with a lot of backward compatibility hacks. It isn't quite clear to me that we need to do it now.