Fix for BUG#35273 "Corrupted table if using GIS index":
when modifying R-tree indices we forgot to unpin pages (causing flush at-end-of-statement to fail - because page is pinned - and thus mark table corrupted) and also to unlock key_del (causing assertion failure info->used_key_del==0 at maria_close()). storage/maria/ma_rt_index.c: When modifying pages of R-tree indices we keep them pinned, and lock key_del, so we here make sure to unpin and unlock at the end of the modification. I checked all functions which add to info->pinned_pages or call _ma_lock_key_del(): the parent is always maria_rtree_insert() or maria_rtree_delete(), which thus do the unpin/unlock now. mysql-test/r/maria-gis-rtree.result: new result, which is incorrect (filed as BUG#35351) but at least test does not crash anymore mysql-test/t/maria-gis-rtree.test: test of Maria's GIS functionality (R-tree indices etc); copied from MyISAM's gis-rtree.test; used to crash without the bugfixes.
Showing
This diff is collapsed.
This diff is collapsed.
Please register or sign in to comment