Commit d2f08db4 authored by unknown's avatar unknown

BUG#20484: "Partitions: crash with EXPLAIN and UNION"

 - Don't forget to produce "partitions" column for "UNION RESULT" row of EXPLAIN output


mysql-test/r/partition_pruning.result:
  BUG#20484: Testcase
mysql-test/t/partition_pruning.test:
  BUG#20484: Testcase
parent f030f858
...@@ -697,3 +697,10 @@ ref NULL ...@@ -697,3 +697,10 @@ ref NULL
rows 2 rows 2
Extra Extra
drop table t2; drop table t2;
create table t1 (s1 int);
explain partitions select 1 from t1 union all select 2;
id select_type table partitions type possible_keys key key_len ref rows Extra
1 PRIMARY t1 NULL system NULL NULL NULL NULL 0 const row not found
2 UNION NULL NULL NULL NULL NULL NULL NULL NULL No tables used
NULL UNION RESULT <union1,2> NULL ALL NULL NULL NULL NULL NULL
drop table t1;
...@@ -590,3 +590,10 @@ explain partitions select * from t2; ...@@ -590,3 +590,10 @@ explain partitions select * from t2;
--horizontal_results --horizontal_results
drop table t2; drop table t2;
# BUG#20484 "Partitions: crash with explain and union"
create table t1 (s1 int);
explain partitions select 1 from t1 union all select 2;
drop table t1;
...@@ -13938,6 +13938,9 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order, ...@@ -13938,6 +13938,9 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
} }
item_list.push_back(new Item_string(table_name_buffer, len, cs)); item_list.push_back(new Item_string(table_name_buffer, len, cs));
} }
/* partitions */
if (join->thd->lex->describe & DESCRIBE_PARTITIONS)
item_list.push_back(item_null);
/* type */ /* type */
item_list.push_back(new Item_string(join_type_str[JT_ALL], item_list.push_back(new Item_string(join_type_str[JT_ALL],
strlen(join_type_str[JT_ALL]), strlen(join_type_str[JT_ALL]),
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment