Loading mysql-test/r/information_schema_part.result +6 −0 Original line number Diff line number Diff line Loading @@ -145,3 +145,9 @@ table_schema = "test" AND table_name = "t1"; PARTITION_DESCRIPTION 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53 drop table t1; drop table if exists t1; create table t1 (f1 int key) partition by key(f1) partitions 2; select create_options from information_schema.tables where table_schema="test"; create_options partitioned drop table t1; mysql-test/t/information_schema_part.test +10 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,13 @@ SHOW CREATE TABLE t1; SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE table_schema = "test" AND table_name = "t1"; drop table t1; # # Bug#38909 CREATE_OPTIONS in information_schema produces wrong results # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (f1 int key) partition by key(f1) partitions 2; select create_options from information_schema.tables where table_schema="test"; drop table t1; sql/sql_show.cc +5 −3 Original line number Diff line number Diff line Loading @@ -3511,6 +3511,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, TABLE_SHARE *share= show_table->s; handler *file= show_table->file; handlerton *tmp_db_type= share->db_type(); bool is_partitioned= FALSE; if (share->tmp_table == SYSTEM_TMP_TABLE) table->field[3]->store(STRING_WITH_LEN("SYSTEM VIEW"), cs); else if (share->tmp_table) Loading @@ -3527,7 +3528,10 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, #ifdef WITH_PARTITION_STORAGE_ENGINE if (share->db_type() == partition_hton && share->partition_info_len) { tmp_db_type= share->default_part_db_type; is_partitioned= TRUE; } #endif tmp_buff= (char *) ha_resolve_storage_engine_name(tmp_db_type); table->field[4]->store(tmp_buff, strlen(tmp_buff), cs); Loading Loading @@ -3572,9 +3576,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, NullS); } #ifdef WITH_PARTITION_STORAGE_ENGINE if (show_table->s->db_type() == partition_hton && show_table->part_info != NULL && show_table->part_info->no_parts > 0) if (is_partitioned) ptr= strmov(ptr, " partitioned"); #endif if (share->transactional != HA_CHOICE_UNDEF) Loading Loading
mysql-test/r/information_schema_part.result +6 −0 Original line number Diff line number Diff line Loading @@ -145,3 +145,9 @@ table_schema = "test" AND table_name = "t1"; PARTITION_DESCRIPTION 10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53 drop table t1; drop table if exists t1; create table t1 (f1 int key) partition by key(f1) partitions 2; select create_options from information_schema.tables where table_schema="test"; create_options partitioned drop table t1;
mysql-test/t/information_schema_part.test +10 −0 Original line number Diff line number Diff line Loading @@ -121,3 +121,13 @@ SHOW CREATE TABLE t1; SELECT PARTITION_DESCRIPTION FROM information_schema.partitions WHERE table_schema = "test" AND table_name = "t1"; drop table t1; # # Bug#38909 CREATE_OPTIONS in information_schema produces wrong results # --disable_warnings drop table if exists t1; --enable_warnings create table t1 (f1 int key) partition by key(f1) partitions 2; select create_options from information_schema.tables where table_schema="test"; drop table t1;
sql/sql_show.cc +5 −3 Original line number Diff line number Diff line Loading @@ -3511,6 +3511,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, TABLE_SHARE *share= show_table->s; handler *file= show_table->file; handlerton *tmp_db_type= share->db_type(); bool is_partitioned= FALSE; if (share->tmp_table == SYSTEM_TMP_TABLE) table->field[3]->store(STRING_WITH_LEN("SYSTEM VIEW"), cs); else if (share->tmp_table) Loading @@ -3527,7 +3528,10 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, #ifdef WITH_PARTITION_STORAGE_ENGINE if (share->db_type() == partition_hton && share->partition_info_len) { tmp_db_type= share->default_part_db_type; is_partitioned= TRUE; } #endif tmp_buff= (char *) ha_resolve_storage_engine_name(tmp_db_type); table->field[4]->store(tmp_buff, strlen(tmp_buff), cs); Loading Loading @@ -3572,9 +3576,7 @@ static int get_schema_tables_record(THD *thd, TABLE_LIST *tables, NullS); } #ifdef WITH_PARTITION_STORAGE_ENGINE if (show_table->s->db_type() == partition_hton && show_table->part_info != NULL && show_table->part_info->no_parts > 0) if (is_partitioned) ptr= strmov(ptr, " partitioned"); #endif if (share->transactional != HA_CHOICE_UNDEF) Loading