Loading mysql-test/r/partition.result +17 −0 Original line number Diff line number Diff line Loading @@ -839,6 +839,23 @@ SHOW TABLE STATUS; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment t1 MyISAM 10 Dynamic 0 0 0 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned DROP TABLE t1; create table t1 (a int) partition by list (a) (partition `s1 s2` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `7` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `s1 s2 ` values in (0)); ERROR HY000: Incorrect partition name create table t1 (a int) partition by list (a) subpartition by hash (a) (partition p1 values in (0) (subpartition `p1 p2 `)); ERROR HY000: Incorrect partition name CREATE TABLE t1 (a int) PARTITION BY LIST (a) (PARTITION p0 VALUES IN (NULL)); Loading mysql-test/t/partition.test +24 −0 Original line number Diff line number Diff line Loading @@ -956,6 +956,30 @@ PARTITION p2 VALUES LESS THAN (30) ENGINE = MyISAM); SHOW TABLE STATUS; DROP TABLE t1; # #BUG 18750 Problems with partition names # create table t1 (a int) partition by list (a) (partition `s1 s2` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `7` values in (0)); drop table t1; --error ER_WRONG_PARTITION_NAME create table t1 (a int) partition by list (a) (partition `s1 s2 ` values in (0)); --error ER_WRONG_PARTITION_NAME create table t1 (a int) partition by list (a) subpartition by hash (a) (partition p1 values in (0) (subpartition `p1 p2 `)); # # BUG 18752 SHOW CREATE TABLE doesn't show NULL value in SHOW CREATE TABLE # Loading sql/partition_info.cc +12 −0 Original line number Diff line number Diff line Loading @@ -696,6 +696,12 @@ bool partition_info::check_partition_info(handlerton **eng_type, partition_element *part_elem= part_it++; if (!is_sub_partitioned()) { if (check_table_name(part_elem->partition_name, strlen(part_elem->partition_name))) { my_error(ER_WRONG_PARTITION_NAME, MYF(0)); goto end; } if (part_elem->engine_type == NULL) part_elem->engine_type= default_engine_type; DBUG_PRINT("info", ("engine = %d", Loading @@ -709,6 +715,12 @@ bool partition_info::check_partition_info(handlerton **eng_type, do { part_elem= sub_it++; if (check_table_name(part_elem->partition_name, strlen(part_elem->partition_name))) { my_error(ER_WRONG_PARTITION_NAME, MYF(0)); goto end; } if (part_elem->engine_type == NULL) part_elem->engine_type= default_engine_type; DBUG_PRINT("info", ("engine = %u", Loading sql/share/errmsg.txt +3 −0 Original line number Diff line number Diff line Loading @@ -5826,3 +5826,6 @@ ER_NDB_CANT_SWITCH_BINLOG_FORMAT eng "The NDB cluster engine does not support changing the binlog format on the fly yet" ER_PARTITION_NO_TEMPORARY eng "Cannot create temporary table with partitions" ER_WRONG_PARTITION_NAME eng "Incorrect partition name" swe "Felaktigt partitionsnamn" sql/sql_partition.cc +17 −2 Original line number Diff line number Diff line Loading @@ -1614,6 +1614,21 @@ static int add_key_partition(File fptr, List<char> field_list) return err; } static int add_name_string(File fptr, const char *name) { int err; String name_string("", 0, system_charset_info); THD *thd= current_thd; ulonglong save_options= thd->options; thd->options= 0; append_identifier(thd, &name_string, name, strlen(name)); thd->options= save_options; err= add_string_object(fptr, &name_string); return err; } static int add_int(File fptr, longlong number) { llstr(number, buff); Loading Loading @@ -1912,7 +1927,7 @@ char *generate_partition_syntax(partition_info *part_info, part_info->part_state_len= part_state_id+1; } err+= add_partition(fptr); err+= add_string(fptr, part_elem->partition_name); err+= add_name_string(fptr, part_elem->partition_name); err+= add_space(fptr); err+= add_partition_values(fptr, part_info, part_elem); if (!part_info->is_sub_partitioned()) Loading @@ -1928,7 +1943,7 @@ char *generate_partition_syntax(partition_info *part_info, { part_elem= sub_it++; err+= add_subpartition(fptr); err+= add_string(fptr, part_elem->partition_name); err+= add_name_string(fptr, part_elem->partition_name); err+= add_space(fptr); err+= add_partition_options(fptr, part_elem); if (j != (no_subparts-1)) Loading Loading
mysql-test/r/partition.result +17 −0 Original line number Diff line number Diff line Loading @@ -839,6 +839,23 @@ SHOW TABLE STATUS; Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment t1 MyISAM 10 Dynamic 0 0 0 0 0 0 NULL NULL NULL NULL latin1_swedish_ci NULL partitioned DROP TABLE t1; create table t1 (a int) partition by list (a) (partition `s1 s2` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `7` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `s1 s2 ` values in (0)); ERROR HY000: Incorrect partition name create table t1 (a int) partition by list (a) subpartition by hash (a) (partition p1 values in (0) (subpartition `p1 p2 `)); ERROR HY000: Incorrect partition name CREATE TABLE t1 (a int) PARTITION BY LIST (a) (PARTITION p0 VALUES IN (NULL)); Loading
mysql-test/t/partition.test +24 −0 Original line number Diff line number Diff line Loading @@ -956,6 +956,30 @@ PARTITION p2 VALUES LESS THAN (30) ENGINE = MyISAM); SHOW TABLE STATUS; DROP TABLE t1; # #BUG 18750 Problems with partition names # create table t1 (a int) partition by list (a) (partition `s1 s2` values in (0)); drop table t1; create table t1 (a int) partition by list (a) (partition `7` values in (0)); drop table t1; --error ER_WRONG_PARTITION_NAME create table t1 (a int) partition by list (a) (partition `s1 s2 ` values in (0)); --error ER_WRONG_PARTITION_NAME create table t1 (a int) partition by list (a) subpartition by hash (a) (partition p1 values in (0) (subpartition `p1 p2 `)); # # BUG 18752 SHOW CREATE TABLE doesn't show NULL value in SHOW CREATE TABLE # Loading
sql/partition_info.cc +12 −0 Original line number Diff line number Diff line Loading @@ -696,6 +696,12 @@ bool partition_info::check_partition_info(handlerton **eng_type, partition_element *part_elem= part_it++; if (!is_sub_partitioned()) { if (check_table_name(part_elem->partition_name, strlen(part_elem->partition_name))) { my_error(ER_WRONG_PARTITION_NAME, MYF(0)); goto end; } if (part_elem->engine_type == NULL) part_elem->engine_type= default_engine_type; DBUG_PRINT("info", ("engine = %d", Loading @@ -709,6 +715,12 @@ bool partition_info::check_partition_info(handlerton **eng_type, do { part_elem= sub_it++; if (check_table_name(part_elem->partition_name, strlen(part_elem->partition_name))) { my_error(ER_WRONG_PARTITION_NAME, MYF(0)); goto end; } if (part_elem->engine_type == NULL) part_elem->engine_type= default_engine_type; DBUG_PRINT("info", ("engine = %u", Loading
sql/share/errmsg.txt +3 −0 Original line number Diff line number Diff line Loading @@ -5826,3 +5826,6 @@ ER_NDB_CANT_SWITCH_BINLOG_FORMAT eng "The NDB cluster engine does not support changing the binlog format on the fly yet" ER_PARTITION_NO_TEMPORARY eng "Cannot create temporary table with partitions" ER_WRONG_PARTITION_NAME eng "Incorrect partition name" swe "Felaktigt partitionsnamn"
sql/sql_partition.cc +17 −2 Original line number Diff line number Diff line Loading @@ -1614,6 +1614,21 @@ static int add_key_partition(File fptr, List<char> field_list) return err; } static int add_name_string(File fptr, const char *name) { int err; String name_string("", 0, system_charset_info); THD *thd= current_thd; ulonglong save_options= thd->options; thd->options= 0; append_identifier(thd, &name_string, name, strlen(name)); thd->options= save_options; err= add_string_object(fptr, &name_string); return err; } static int add_int(File fptr, longlong number) { llstr(number, buff); Loading Loading @@ -1912,7 +1927,7 @@ char *generate_partition_syntax(partition_info *part_info, part_info->part_state_len= part_state_id+1; } err+= add_partition(fptr); err+= add_string(fptr, part_elem->partition_name); err+= add_name_string(fptr, part_elem->partition_name); err+= add_space(fptr); err+= add_partition_values(fptr, part_info, part_elem); if (!part_info->is_sub_partitioned()) Loading @@ -1928,7 +1943,7 @@ char *generate_partition_syntax(partition_info *part_info, { part_elem= sub_it++; err+= add_subpartition(fptr); err+= add_string(fptr, part_elem->partition_name); err+= add_name_string(fptr, part_elem->partition_name); err+= add_space(fptr); err+= add_partition_options(fptr, part_elem); if (j != (no_subparts-1)) Loading