[tarantool-patches] Re: [PATCH 2/6] sql: rework ALTER TABLE grammar

Konstantin Osipov kostja at tarantool.org
Thu Jan 17 14:51:00 MSK 2019


* Nikita Pettik <korablev at tarantool.org> [19/01/09 15:17]:
> +alter_table_start ::= ALTER TABLE fullname(Z) . {
> +  pParse->constraint->table_name = Z;
> +  pParse->constraint->name.n = 0;
> +}

It's bikeshed at this point, but in future you will have other
ALTER TABLE clauses: add/drop column, add/drop index, add/drop
constraint. It's unclear why you initialize a specific parsing
context (constraint definition) right in alter_table_start rule.
OK for now.


> +
> +alter_table_action ::= add_constraint_def.
> +alter_table_action ::= drop_constraint_def.

Why use the same data structure for create and drop? When I drop a
constraint I specify its name and (perhaps) table name, none of
other properties. To capture drop context one could use:

struct drop_object_def {
    enum object_type object_type;
    const char *object_name;
    const char *parent_object_name;
};

rename of an object could be captured in a similar data structure.


-- 
Konstantin Osipov, Moscow, Russia, +7 903 626 22 32
http://tarantool.io - www.twitter.com/kostja_osipov




More information about the Tarantool-patches mailing list