summaryrefslogtreecommitdiff
path: root/sql/ha_partition.h
diff options
context:
space:
mode:
authorunknown <holyfoot/hf@mysql.com/hfmain.(none)>2007-08-23 23:34:48 +0500
committerunknown <holyfoot/hf@mysql.com/hfmain.(none)>2007-08-23 23:34:48 +0500
commitf0d1ac25c349f09f2512d75f4e12f39d3a7729c3 (patch)
tree6da59a685857cfe6fb8a911fadf83d4e2b2869b4 /sql/ha_partition.h
parent4512a993c52479b8d83644bdee8db14912ecfba9 (diff)
downloadmariadb-git-f0d1ac25c349f09f2512d75f4e12f39d3a7729c3.tar.gz
Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format.
In the ha_partition::position() we didn't calculate the number of the partition of the record. We used m_last_part value instead, relying on that it is set in other place like previous call of a method like ::write_row(). In replication we don't call any of these befor position(). Delete_rows_log_event::do_exec_row calls find_and_fetch_row. In case of InnoDB-based PARTITION table, we have HA_PRIMARY_KEY_REQUIRED_FOR_POSITION enabled, so use position() / rnd_pos() calls to fetch the record. Fixed by adding partition_id calculation to the ha_partition::position() sql/ha_partition.h: Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. column_bitmaps_signal interface added sql/ha_partition.cc: Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. Calculate the number of the partition in ha_partition::position(). ha_partition::column_bitmaps_signal() implemented mysql-test/r/partition_pruning.result: Bug #28430 Failure in replication of innodb partitioned tables on row/mixed format. test result fixed
Diffstat (limited to 'sql/ha_partition.h')
-rw-r--r--sql/ha_partition.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sql/ha_partition.h b/sql/ha_partition.h
index 895f001fa6a..c3145b7c14c 100644
--- a/sql/ha_partition.h
+++ b/sql/ha_partition.h
@@ -449,6 +449,7 @@ private:
int handle_ordered_next(uchar * buf, bool next_same);
int handle_ordered_prev(uchar * buf);
void return_top_record(uchar * buf);
+ void column_bitmaps_signal();
public:
/*
-------------------------------------------------------------------------