diff options
author | unknown <Sinisa@sinisa.nasamreza.org> | 2004-02-10 21:34:25 +0200 |
---|---|---|
committer | unknown <Sinisa@sinisa.nasamreza.org> | 2004-02-10 21:34:25 +0200 |
commit | 425ae9185d10c61b2b2b22e551dd9f96927b8efb (patch) | |
tree | 98037a36c553f0af384a17dbc26a62f03c3e0247 /sql/sql_union.cc | |
parent | 538e6e8cbd057333650af356896cef44b7786f92 (diff) | |
download | mariadb-git-425ae9185d10c61b2b2b22e551dd9f96927b8efb.tar.gz |
Fixes for bugs #2508 and #2552
mysql-test/r/union.result:
Test cases for bugs #2508 and #2552
mysql-test/t/union.test:
Test cases for bugs #2508 and #2552
sql/sql_class.h:
A fix for a bug #2508
sql/sql_select.cc:
A fix for a bug #2508
sql/sql_union.cc:
a fix for a bug #2552
Diffstat (limited to 'sql/sql_union.cc')
-rw-r--r-- | sql/sql_union.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/sql/sql_union.cc b/sql/sql_union.cc index 1cb01c6b3ef..bfaccc93906 100644 --- a/sql/sql_union.cc +++ b/sql/sql_union.cc @@ -206,6 +206,7 @@ int st_select_lex_unit::prepare(THD *thd_arg, select_result *sel_result, if (first_select->next_select()) { union_result->tmp_table_param.field_count= types.elements; + union_result->tmp_table_param.all_nulls= true; if (!(table= create_tmp_table(thd_arg, &union_result->tmp_table_param, types, (ORDER*) 0, !union_option, 1, @@ -315,6 +316,7 @@ int st_select_lex_unit::exec() if it use same tables */ uint tablenr=0; + ulong query_id= thd->query_id; for (TABLE_LIST *table_list= (TABLE_LIST*) sl->table_list.first; table_list; table_list= table_list->next, tablenr++) @@ -329,6 +331,8 @@ int st_select_lex_unit::exec() */ setup_table_map(table_list->table, table_list, tablenr); } + for (unsigned int i=0; i < table_list->table->fields; i++) + table_list->table->field[i]->query_id= query_id; } res= sl->join->optimize(); } |