[tarantool-patches] Re: [PATCH 3/4] schema: allow to set sequence for any index part, not just the first
Vladimir Davydov
vdavydov.dev at gmail.com
Thu May 16 11:02:26 MSK 2019
On Thu, May 16, 2019 at 10:45:29AM +0300, Konstantin Osipov wrote:
> * Vladimir Davydov <vdavydov.dev at gmail.com> [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.
More information about the Tarantool-patches
mailing list