amcheck: Optimize speed of checking for unique constraint violation

Alexander Korotkov <akorotkov@postgresql.org>

Commit: cdd6ab9d1f5396ec1097d51c21a224aa41118c9c
Author: Alexander Korotkov <akorotkov@postgresql.org>
Date: 2024-07-28T10:50:57Z
Releases: 18.0
amcheck: Optimize speed of checking for unique constraint violation

Currently, when amcheck validates a unique constraint, it visits the heap for
each index tuple.  This commit implements skipping keys, which have only one
non-dedeuplicated index tuple (quite common case for unique indexes). That
gives substantial economy on index checking time.

Reported-by: Noah Misch
Discussion: https://postgr.es/m/20240325020323.fd.nmisch%40google.com
Author: Alexander Korotkov, Pavel Borisov

Files

PathChange+/−
contrib/amcheck/verify_nbtree.c modified +33 −3

Discussion