pgsql: Teach contrib/amcheck to check the unique constraint violation

From: Alexander Korotkov <akorotkov(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Teach contrib/amcheck to check the unique constraint violation
Date: 2023-10-27 21:21:50
Message-ID: E1qwUH8-002fDJ-Eq@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Teach contrib/amcheck to check the unique constraint violation

Add the 'checkunique' argument to bt_index_check() and bt_index_parent_check().
When the flag is specified the procedures will check the unique constraint
violation for unique indexes. Only one heap entry for all equal keys in
the index should be visible (including posting list entries). Report an error
otherwise.

pg_amcheck called with the --checkunique option will do the same check for all
the indexes it checks.

Author: Anastasia Lubennikova <lubennikovaav(at)gmail(dot)com>
Author: Pavel Borisov <pashkin(dot)elfe(at)gmail(dot)com>
Author: Maxim Orlov <orlovmg(at)gmail(dot)com>
Reviewed-by: Mark Dilger <mark(dot)dilger(at)enterprisedb(dot)com>
Reviewed-by: Zhihong Yu <zyu(at)yugabyte(dot)com>
Reviewed-by: Peter Geoghegan <pg(at)bowt(dot)ie>
Reviewed-by: Aleksander Alekseev <aleksander(at)timescale(dot)com>
Discussion: https://postgr.es/m/CALT9ZEHRn5xAM5boga0qnrCmPV52bScEK2QnQ1HmUZDD301JEg%40mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/5ae2087202af9fd804c8b8d76954bdd8bdf31e51

Modified Files
--------------
contrib/amcheck/Makefile | 2 +-
contrib/amcheck/amcheck--1.3--1.4.sql | 29 +++
contrib/amcheck/amcheck.control | 2 +-
contrib/amcheck/expected/check_btree.out | 42 ++++
contrib/amcheck/meson.build | 2 +
contrib/amcheck/sql/check_btree.sql | 14 ++
contrib/amcheck/t/004_verify_nbtree_unique.pl | 244 +++++++++++++++++++
contrib/amcheck/verify_nbtree.c | 330 ++++++++++++++++++++++++--
doc/src/sgml/amcheck.sgml | 14 +-
doc/src/sgml/ref/pg_amcheck.sgml | 11 +
src/bin/pg_amcheck/pg_amcheck.c | 48 +++-
src/bin/pg_amcheck/t/003_check.pl | 50 ++++
src/bin/pg_amcheck/t/005_opclass_damage.pl | 65 +++++
13 files changed, 830 insertions(+), 23 deletions(-)

Responses

Browse pgsql-committers by date

  From Date Subject
Next Message Bruce Momjian 2023-10-27 21:23:37 pgsql: doc: wording improvements
Previous Message Alexander Korotkov 2023-10-27 20:53:40 Re: pgsql: Adjust parallel_schedule with event triggers on authenticated lo