postgresql/contrib/amcheck
Noah Misch 782be0f712 Dissociate btequalimage() from interval_ops, ending its deduplication.
Under interval_ops, some equal values are distinguishable.  One such
pair is '24:00:00' and '1 day'.  With that being so, btequalimage()
breaches the documented contract for the "equalimage" btree support
function.  This can cause incorrect results from index-only scans.
Users should REINDEX any btree indexes having interval-type columns.
After updating, pg_amcheck will report an error for almost all such
indexes.  This fix makes interval_ops simply omit the support function,
like numeric_ops does.  Back-pack to v13, where btequalimage() first
appeared.  In back branches, for the benefit of old catalog content,
btequalimage() code will return false for type "interval".  Going
forward, back-branch initdb will include the catalog change.

Reviewed by Peter Geoghegan.

Discussion: https://postgr.es/m/20231011013317.22.nmisch@google.com
2023-10-14 16:33:54 -07:00
..
expected Make relation-enumerating operations be security-restricted operations. 2022-05-09 08:35:08 -07:00
sql Make relation-enumerating operations be security-restricted operations. 2022-05-09 08:35:08 -07:00
t Harden TAP tests that intentionally corrupt page checksums. 2022-03-25 14:23:26 -04:00
.gitignore Add .gitignore to contrib/amcheck. 2017-03-09 22:45:24 -05:00
amcheck--1.0--1.1.sql Add amcheck verification of heap relations belonging to btree indexes. 2018-03-31 19:52:01 -07:00
amcheck--1.0.sql Add amcheck extension to contrib. 2017-03-09 16:33:02 -08:00
amcheck--1.1--1.2.sql Allow amcheck to re-find tuples using new search. 2019-03-20 10:41:36 -07:00
amcheck--1.2--1.3.sql Extend amcheck to check heap pages. 2020-10-22 08:44:18 -04:00
amcheck.control Extend amcheck to check heap pages. 2020-10-22 08:44:18 -04:00
Makefile Extend amcheck to check heap pages. 2020-10-22 08:44:18 -04:00
verify_heapam.c amcheck: In verify_heapam, allows tuples with xmin 0. 2023-03-28 16:17:03 -04:00
verify_nbtree.c Dissociate btequalimage() from interval_ops, ending its deduplication. 2023-10-14 16:33:54 -07:00