mirror of
https://github.com/MariaDB/server.git
synced 2026-01-06 05:22:24 +03:00
Fixed a problem where the temp table of a materialized subquery
was not cleaned up between PS re-executions. The reason was two-fold: - a merge with mysql-6.0 missed select_union::cleanup() that should have cleaned up the temp table, and - the subclass of select_union used by materialization didn't call the base class cleanup() method.
This commit is contained in:
@@ -2905,7 +2905,7 @@ public:
|
||||
bool send_data(List<Item> &items);
|
||||
bool send_eof();
|
||||
bool flush();
|
||||
|
||||
void cleanup();
|
||||
virtual bool create_result_table(THD *thd, List<Item> *column_types,
|
||||
bool is_distinct, ulonglong options,
|
||||
const char *alias, bool bit_fields_as_long);
|
||||
@@ -2968,6 +2968,9 @@ protected:
|
||||
*/
|
||||
ha_rows count_rows;
|
||||
|
||||
protected:
|
||||
void reset();
|
||||
|
||||
public:
|
||||
select_materialize_with_stats() {}
|
||||
virtual bool create_result_table(THD *thd, List<Item> *column_types,
|
||||
@@ -2975,12 +2978,7 @@ public:
|
||||
const char *alias, bool bit_fields_as_long);
|
||||
bool init_result_table(ulonglong select_options);
|
||||
bool send_data(List<Item> &items);
|
||||
void cleanup()
|
||||
{
|
||||
memset(col_stat, 0, table->s->fields * sizeof(Column_statistics));
|
||||
max_nulls_in_row= 0;
|
||||
count_rows= 0;
|
||||
}
|
||||
void cleanup();
|
||||
ha_rows get_null_count_of_col(uint idx)
|
||||
{
|
||||
DBUG_ASSERT(idx < table->s->fields);
|
||||
|
||||
Reference in New Issue
Block a user