[tarantool-patches] Re: [PATCH] schema: rework index sequence API

Konstantin Osipov kostja at tarantool.org
Mon May 27 22:38:46 MSK 2019


* Vladimir Davydov <vdavydov.dev at gmail.com> [19/05/27 22:25]:
> Rather than passing 'sequence_part' along with 'sequence' on index
> create/alter, pass a table with the following fields:
> 
>  - id: sequence id or name
>  - field: auto increment field id or name or path in case of json index
> 
> If id is omitted, the sequence will be auto-generated (equivalent to
> 'sequence = true'). If field is omitted, the first indexed field is
> used. Old format, i.e. passing false/true or sequence name/id instead of
> a table is still supported.

Hi,

Thank you for the patch.

I certainly do not appreciate lack of changes in _space_sequence
definition.

You do hope, it seems, that mentioning field name in the sequence
name is a stupid idea, and will be reverted some day.
Meanwhile all front ends will have to resolve the field to path to
build a proper statement for _space_sequence.

> +s.index.pk:alter{sequence = false}
> +s.index.pk:alter{sequence = {field = 'x.a.b[1]'}}
> +s:replace{{a = {b = {box.NULL}}}} -- ok

What happens when I rename the field using space::format()?
Does sequence continue to work? Which field is it using then? 

What happens when if I alter the index and modify its part names, order
or count? The answer to this question depends on whether
_sequence_space stores the path or the part.

If you think using a field is a stupid idea and the core should
continue using part no, please, test the consequences of this at
least.

-- 
Konstantin Osipov, Moscow, Russia




More information about the Tarantool-patches mailing list