Commit d2f08db4 authored by unknown's avatar unknown
Browse files

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
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -697,3 +697,10 @@ ref NULL
rows	2
Extra	
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;
+7 −0
Original line number Diff line number Diff line
@@ -590,3 +590,10 @@ explain partitions select * from t2;
--horizontal_results
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;

+3 −0
Original line number Diff line number Diff line
@@ -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));
    }
    /* partitions */
    if (join->thd->lex->describe & DESCRIBE_PARTITIONS)
      item_list.push_back(item_null);
    /* type */
    item_list.push_back(new Item_string(join_type_str[JT_ALL],
					  strlen(join_type_str[JT_ALL]),