summaryrefslogtreecommitdiff
path: root/sql/gcalc_slicescan.cc
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@askmonty.org>2018-09-16 10:22:32 +0400
committerAlexey Botchkov <holyfoot@askmonty.org>2018-09-16 10:22:32 +0400
commite89b611dc9535183d617391c4d1229f0bca66d31 (patch)
treea1cfac73b56fd51e901fd9e58ecc203e0cd31e22 /sql/gcalc_slicescan.cc
parent7419f72b7183e40a24cd53a139b78aeaf41503d2 (diff)
downloadmariadb-git-e89b611dc9535183d617391c4d1229f0bca66d31.tar.gz
MDEV-16050 cte + geometry functions lead to crash.
Structures based on Gcalc_dyn_list need to be treated properly when copied in Item::get_copy().
Diffstat (limited to 'sql/gcalc_slicescan.cc')
-rw-r--r--sql/gcalc_slicescan.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/gcalc_slicescan.cc b/sql/gcalc_slicescan.cc
index ab48542add6..68764205302 100644
--- a/sql/gcalc_slicescan.cc
+++ b/sql/gcalc_slicescan.cc
@@ -177,6 +177,17 @@ Gcalc_dyn_list::Gcalc_dyn_list(size_t blk_size, size_t sizeof_item):
{}
+Gcalc_dyn_list::Gcalc_dyn_list(const Gcalc_dyn_list &dl)
+{
+ m_blk_size= dl.m_blk_size;
+ m_sizeof_item= dl.m_sizeof_item;
+ m_points_per_blk= dl.m_points_per_blk;
+ m_blk_hook= &m_first_blk;
+ m_free= NULL;
+ m_keep= NULL;
+}
+
+
void Gcalc_dyn_list::format_blk(void* block)
{
Item *pi_end, *cur_pi, *first_pi;