summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
authorunknown <sergefp@mysql.com>2007-02-27 22:01:03 +0300
committerunknown <sergefp@mysql.com>2007-02-27 22:01:03 +0300
commitb68a22019e63dbaf7d1918b86c8a456a48dcdc3c (patch)
tree6dca6a83507a775256db33191e2be2b82ddae332 /sql/ha_partition.h
parent5b64b12c7fec848c07475d26a6923dac93a1e5bc (diff)
downloadmariadb-git-b68a22019e63dbaf7d1918b86c8a456a48dcdc3c.tar.gz
BUG#26117 "index_merge sort-union over partitioned table crashes"
Before the fix: ha_partition objects had ha_partition::m_part_info==NULL and that caused crash After: - The new ha_partition::clone() function makes the clones use parent's m_part_info value. - The parent ha_partition object remains responsible for deallocation of m_part_info. mysql-test/r/partition_innodb.result: BUG#26117 "index_merge sort-union over partitioned table crashes" - Testcase mysql-test/t/partition_innodb.test: BUG#26117 "index_merge sort-union over partitioned table crashes" - Testcase
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r--sql/ha_partition.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index 4fdf325fa06..1069dd058d5 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -132,7 +132,13 @@ private:
THR_LOCK_DATA lock; /* MySQL lock */
PARTITION_SHARE *share; /* Shared lock info */
+ /*
+ TRUE <=> this object was created with ha_partition::clone and doesn't
+ "own" the m_part_info structure.
+ */
+ bool is_clone;
public:
+ handler *clone(MEM_ROOT *mem_root);
virtual void set_part_info(partition_info *part_info)
{
m_part_info= part_info;