1
0
mirror of https://github.com/MariaDB/server.git synced 2025-12-24 11:21:21 +03:00

Main patch for mdev-9864

This commit is contained in:
Galina Shalygina
2016-05-09 23:39:10 +03:00
parent 5703d2680c
commit f516b966e1
14 changed files with 859 additions and 76 deletions

View File

@@ -4196,6 +4196,7 @@ protected:
/* Something used only by the parser: */
public:
select_result(THD *thd_arg): select_result_sink(thd_arg) {}
void set_unit(SELECT_LEX_UNIT *unit_arg) { unit= unit_arg; }
virtual ~select_result() {};
/**
Change wrapped select_result.
@@ -4637,6 +4638,7 @@ public:
}
};
class select_union :public select_result_interceptor
{
public:
@@ -4674,6 +4676,25 @@ public:
};
class select_union_recursive :public select_union
{
public:
TABLE *incr_table;
List<TABLE> rec_tables;
select_union_recursive(THD *thd_arg):
select_union(thd_arg), incr_table(0) {};
int send_data(List<Item> &items);
bool create_result_table(THD *thd, List<Item> *column_types,
bool is_distinct, ulonglong options,
const char *alias,
bool bit_fields_as_long,
bool create_table,
bool keep_row_order= FALSE);
void cleanup();
};
/**
UNION result that is passed directly to the receiving select_result
without filling a temporary table.