[Tarantool-patches] [PATCH v2 2/2] sql: support column addition
Vladislav Shpilevoy
v.shpilevoy at tarantool.org
Thu Aug 20 01:20:23 MSK 2020
Hi! Thanks for the patch!
>>> + parser->has_autoinc = false;
>>> region_create(&parser->region, &cord()->slabc);
>>> }
>>>
>>> diff --git a/src/box/sql/sqlInt.h b/src/box/sql/sqlInt.h
>>> index aa6a470f8..3143ec521 100644
>>> --- a/src/box/sql/sqlInt.h
>>> +++ b/src/box/sql/sqlInt.h
>>> @@ -2249,12 +2249,26 @@ struct Parse {
>>> struct enable_entity_def enable_entity_def;
>>> };
>>> /**
>>> - * Table def is not part of union since information
>>> - * being held must survive till the end of parsing of
>>> - * whole CREATE TABLE statement (to pass it to
>>> - * sqlEndTable() function).
>>> + * Table def or column def is not part of union since
>>> + * information being held must survive till the end of
>>> + * parsing of whole <CREATE TABLE> or
>>> + * <ALTER TABLE ADD COLUMN> statement (to pass it to
>>> + * sqlEndTable() sql_create_column_end() function).
>>> */
>>> struct create_table_def create_table_def;
>>> + struct create_column_def create_column_def;
>>> + /**
>>> + * FK and CK constraints appeared in a <CREATE TABLE> or
>>> + * a <ALTER TABLE ADD COLUMN> statement.
>>> + */
>>> + struct rlist fkeys;
>>> + struct rlist checks;
>>> + uint32_t fkey_count;
>>> + uint32_t check_count;
>>> + /** True, if column to be created has <AUTOINCREMENT>. */
>>> + bool has_autoinc;
>>
>> 27. What column? This is struct Parse, it is not a column.
> I know, but I haven't come up with anything better.
Why can't autoinc field be moved into create_column_def, since this is
related to only one column?
Can you move struct rlist fkeys and uint32_t fkey_count into a new struct
like 'struct create_fkeys_def;', and the same for checks?
More information about the Tarantool-patches
mailing list