Commit 54b81ac5 authored by Vicențiu Ciorbaru's avatar Vicențiu Ciorbaru

Window functions fail with --ps-protocol

When running with --ps protocol, window functions cleanup method may
be called twice. Enforce proper cleanup by setting pointers to NULL
after deletion. This prevents double deletion on second cleanup.
parent ec59220f
......@@ -198,8 +198,11 @@ class Item_sum_rank: public Item_sum_int
void cleanup()
{
if (peer_tracker)
{
peer_tracker->cleanup();
delete peer_tracker;
delete peer_tracker;
peer_tracker= NULL;
}
Item_sum_int::cleanup();
}
Item *get_copy(THD *thd, MEM_ROOT *mem_root)
......@@ -268,6 +271,7 @@ class Item_sum_dense_rank: public Item_sum_int
{
peer_tracker->cleanup();
delete peer_tracker;
peer_tracker= NULL;
}
Item_sum_int::cleanup();
}
......@@ -379,6 +383,7 @@ class Item_sum_percent_rank: public Item_sum_window_with_row_count
{
peer_tracker->cleanup();
delete peer_tracker;
peer_tracker= NULL;
}
Item_sum_num::cleanup();
}
......
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