Hi, Alexander! Fair enough. Ok to push
On Nov 16, Alexander Barkov wrote: > On 11/16/2017 08:27 AM, Sergei Golubchik wrote: > > On Nov 15, Alexander Barkov wrote: > >> diff --git a/sql/partition_info.cc b/sql/partition_info.cc > >> index 512bf29..740e508 100644 > >> --- a/sql/partition_info.cc > >> +++ b/sql/partition_info.cc > >> @@ -2221,6 +2239,8 @@ int partition_info::fix_parser_data(THD *thd) > >> part_elem= it++; > >> List_iterator<part_elem_value> list_val_it(part_elem->list_val_list); > >> num_elements= part_elem->list_val_list.elements; > >> + if (!num_elements && error_if_requires_values()) > >> + DBUG_RETURN(true); > > > > I thought the parser was supposed to ensure that VALUES was used where > > needed, so there should be no need to do additional checks here. > > > > Why does the parser allow invalid syntax? > > Unlike, CREATE TABLE, there's nothing we can do during parsing for ALTER > TABLE. > > This syntax is generally valid, e.g. for HASH partitioning: > > ALTER TABLE t1 REORGANIZE PARTITION p1 INTO > ( > PARTITION p2, > PARTITION p3 > ); > > It's not valid only for RANGE or LIST partitioning. > > The current partition type becomes known only after parsing. > So I extended partition_info::fix_parser_data() to validate > the value list, depending on the partitioning type. > Regards, Sergei Chief Architect MariaDB and secur...@mariadb.org _______________________________________________ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp