1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

MDEV-27417 InnoDB spatial index updates change buffer bitmap page

- InnoDB change buffer doesn't support spatial index. Spatial
index should avoid change the buffer bitmap page when the page
split happens.
This commit is contained in:
Thirunarayanan Balathandayuthapani
2022-01-18 13:38:08 +05:30
committed by Marko Mäkelä
parent 7dcef65046
commit 474c6df804
3 changed files with 15 additions and 9 deletions

View File

@ -61,3 +61,10 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
count(*) count(*)
57344 57344
drop table t1; drop table t1;
#
# MDEV-27417 Spatial index tries to update
# change buffer bookkeeping page
#
CREATE TEMPORARY TABLE t1 (c POINT NOT NULL, SPATIAL(c)) ENGINE=InnoDB;
INSERT INTO t1 SELECT PointFromText('POINT(0 0)') FROM seq_1_to_366;
DROP TABLE t1;

View File

@ -72,3 +72,11 @@ select count(*) from t1 where MBRWithin(t1.c2, @g1);
# Clean up. # Clean up.
drop table t1; drop table t1;
--echo #
--echo # MDEV-27417 Spatial index tries to update
--echo # change buffer bookkeeping page
--echo #
CREATE TEMPORARY TABLE t1 (c POINT NOT NULL, SPATIAL(c)) ENGINE=InnoDB;
INSERT INTO t1 SELECT PointFromText('POINT(0 0)') FROM seq_1_to_366;
DROP TABLE t1;

View File

@ -1262,15 +1262,6 @@ after_insert:
page_zip = buf_block_get_page_zip(root_block); page_zip = buf_block_get_page_zip(root_block);
page_set_ssn_id(root_block, page_zip, next_ssn, mtr); page_set_ssn_id(root_block, page_zip, next_ssn, mtr);
/* Insert fit on the page: update the free bits for the
left and right pages in the same mtr */
if (page_is_leaf(page)) {
ibuf_update_free_bits_for_two_pages_low(
block, new_block, mtr);
}
/* If the new res insert fail, we need to do another split /* If the new res insert fail, we need to do another split
again. */ again. */
if (!rec) { if (!rec) {