• unknown's avatar
    Fix for BUG#35273 "Corrupted table if using GIS index": · 1d791be4
    unknown authored
    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.
    1d791be4
maria-gis-rtree.test 41.8 KB