Re: bt_index_parent_check and concurrently build indexes
Donghang Lin <donghanglin@gmail.com>
From: Donghang Lin <donghanglin@gmail.com>
To: Álvaro Herrera <alvherre@kurilemu.de>
Cc: Mihail Nikalayeu <mihailnikalayeu@gmail.com>,
Peter Geoghegan <pg@bowt.ie>, Michael Paquier <michael@paquier.xyz>,
PostgreSQL Hackers <pgsql-hackers@postgresql.org>, Andrey Borodin <amborodin86@gmail.com>, Matthias van de Meent <boekewurm+postgres@gmail.com>
Date: 2025-12-06T17:29:00Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
amcheck: Fix snapshot usage in bt_index_parent_check
- e1a327dc4dcb 17.8 landed
- dcddd6987197 15.16 landed
- 607a67c5e657 14.21 landed
- 3c83a2a0ace9 18.2 landed
- 1f28982e4094 19 (unreleased) landed
- 098a1fab8a9b 16.12 landed
- df93f94dda51 18.2 landed
- ce2f575b7cf4 17.8 landed
- 6bd469d26aca 19 (unreleased) landed
-
Teach contrib/amcheck to check the unique constraint violation
- 5ae2087202af 17.0 cited
Hi Álvaro You're correct that the bug is older. I'm not sure about backporting > the fix to 16 and earlier though, because it depends on BtreeCheckState > having the snapshot member which was only added in commit 5ae2087202af. > It's not a difficult patch -- attached. > The issue itself in fact doesn't depend on BtreeCheckState's snapshot member. So the fix for 14-16 can make snapshot a local variable in the bt_check_every_level function to make the scope small. Do you think it's worth changing it to a local variable? I don't think the issue itself is related to 5ae2087202af but actually 7f563c09f890 where the heapallindexed flag is introduced for bt_index_check. The committed test also doesn't check the uniqueness of an index. Should the commit message be restated to reflect this and also restate it's backport to 14 and up? I applied the patch in 14 and noticed that it needs to fix the test number to get the test passed. 15 and 16 do not need this diff. -use Test::More tests => 3; +use Test::More tests => 4; > (One thing I realized is that the comment for BtreeCheckState->snapshot > says that it's used for the uniqueness test only, but that's no longer > the case. So that needs fixed ...) > I think we'll have another chance to reflect that the issue is since 7f563c09f890 but not 5ae2087202af in master for this fix. I can give it a try. Thanks, Donghang