aboutsummaryrefslogtreecommitdiff
path: root/contrib/intarray/_int_gist.c
diff options
context:
space:
mode:
authorPeter Geoghegan <pg@bowt.ie>2020-08-08 11:12:01 -0700
committerPeter Geoghegan <pg@bowt.ie>2020-08-08 11:12:01 -0700
commit39132b784aeaaacf5ddfb5c35b6e29a6926f4345 (patch)
treec8c5b13152226cd05ddc788e1bf2401a87aa45df /contrib/intarray/_int_gist.c
parent470687b4a5bb3b9f2b5bf7c9235680b3c91bd050 (diff)
downloadpostgresql-39132b784aeaaacf5ddfb5c35b6e29a6926f4345.tar.gz
postgresql-39132b784aeaaacf5ddfb5c35b6e29a6926f4345.zip
Teach amcheck to verify sibling links in all cases.
Teach contrib/amcheck's bt_index_check() function to check agreement between siblings links. The left sibling's right link should point to a right sibling page whose left link points back to the same original left sibling. This extends a check that bt_index_parent_check() always performed to bt_index_check(). This is the first time amcheck has been taught to perform buffer lock coupling, which we have explicitly avoided up until now. The sibling link check tends to catch a lot of real world index corruption with little overhead, so it seems worth accepting the complexity. Note that the new lock coupling logic would not work correctly on replica servers without the changes made by commits 0a7d771f and 9a9db08a (there could be false positives without those changes). Author: Andrey Borodin, Peter Geoghegan Discussion: https://postgr.es/m/0EB0CFA8-CBD8-4296-8049-A2C0F28FAE8C@yandex-team.ru
Diffstat (limited to 'contrib/intarray/_int_gist.c')
0 files changed, 0 insertions, 0 deletions