1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-27 18:02:13 +03:00

MDEV-14058 InnoDB Assertion failure !leaf on rem0rec.cc line 566 on test innodb_gis.rtree_recovery

The function rtr_update_mbr_field_in_place() is generating
MLOG_REC_UPDATE_IN_PLACE or MLOG_COMP_REC_UPDATE_IN_PLACE records
on non-leaf pages, even though MLOG_WRITE_STRING would perfectly
suffice for updating a fixed-length data field.

btr_cur_parse_update_in_place(): If flags==7, the record may be
from rtr_update_mbr_field_in_place(), and we must check if the
page is a leaf page. Otherwise, assume that it is.

btr_cur_update_in_place(): Assert that the page is a leaf page.
This commit is contained in:
Marko Mäkelä
2018-01-04 19:32:29 +02:00
parent 0f253d3e64
commit 218dbf68b8
3 changed files with 11 additions and 5 deletions

View File

@ -1,4 +1,3 @@
# restart
create table t1 (c1 int, c2 geometry not null, spatial index (c2))engine=innodb;
create procedure insert_t1(IN total int)
begin
@ -33,10 +32,9 @@ Table Op Msg_type Msg_text
test.t1 check status OK
select count(*) from t1;
count(*)
18
17
select c1, ST_astext(c2) from t1;
c1 ST_astext(c2)
350 POINT(10350 10350)
351 POINT(10351 10351)
352 POINT(10352 10352)
353 POINT(10353 10353)