postgresql/src/backend
Peter Geoghegan dedb92d4a3 Fix deduplication "single value" strategy bug.
It was possible for deduplication's single value strategy to mistakenly
believe that a very small duplicate tuple counts as one of the six large
tuples that it aims to leave behind after the page finally splits.  This
could cause slightly suboptimal space utilization with very low
cardinality indexes, though only under fairly narrow conditions.

To fix, be particular about what kind of tuple counts as a
maxpostingsize-capped tuple.  This avoids confusion in the event of a
small tuple that gets "wedged" between two large tuples, where all
tuples on the page are duplicates of the same value.

Discussion: https://postgr.es/m/CAH2-Wz=Y+sgSFc-O3LpiZX-POx2bC+okec2KafERHuzdVa7-rQ@mail.gmail.com
Backpatch: 13-, where deduplication was introduced (by commit 0d861bbb)
2020-06-19 08:57:23 -07:00
..
access Fix deduplication "single value" strategy bug. 2020-06-19 08:57:23 -07:00
bootstrap Skip WAL for new relfilenodes, under wal_level=minimal. 2020-04-04 12:25:34 -07:00
catalog Preserve pg_index.indisreplident across REINDEX CONCURRENTLY 2020-06-05 10:26:02 +09:00
commands Fix EXPLAIN ANALYZE for parallel HashAgg plans 2020-06-19 17:25:07 +12:00
executor Fix EXPLAIN ANALYZE for parallel HashAgg plans 2020-06-19 17:25:07 +12:00
foreign Update copyrights for 2020 2020-01-01 12:21:45 -05:00
jit pgindent run prior to branching v13. 2020-06-07 16:57:08 -04:00
lib Move src/backend/utils/hash/hashfn.c to src/common 2020-02-27 09:25:41 +05:30
libpq Fix comment in be-secure-openssl.c 2020-06-04 13:02:59 +09:00
main Add PostgreSQL home page to --help output 2020-02-28 13:12:21 +01:00
nodes Reconcile nodes/*funcs.c. 2020-05-25 16:23:48 -07:00
optimizer Rework HashAgg GUCs. 2020-06-11 13:05:37 -07:00
parser part_strategy does not need its very own keyword classification. 2020-05-19 20:09:59 -04:00
partitioning Fix two typos in a comment 2020-05-22 17:39:16 -04:00
po Translation updates 2020-05-18 12:49:30 +02:00
port Spelling adjustments 2020-06-07 15:06:51 +02:00
postmaster pgindent run prior to branching v13. 2020-06-07 16:57:08 -04:00
regex Dial back -Wimplicit-fallthrough to level 3 2020-05-13 15:31:14 -04:00
replication Fix issues in invalidation of obsolete replication slots. 2020-06-19 17:16:34 +09:00
rewrite Add missing invocations to object access hooks 2020-05-23 14:03:04 +09:00
snowball Update copyrights for 2020 2020-01-01 12:21:45 -05:00
statistics Run pgindent with new pg_bsd_indent version 2.1.1. 2020-05-16 11:54:51 -04:00
storage Fix deadlock danger when atomic ops are done under spinlock. 2020-06-18 14:13:26 -07:00
tcop Spelling adjustments 2020-06-07 15:06:51 +02:00
tsearch Further cleanup of ts_headline code. 2020-04-09 15:38:43 -04:00
utils Fix buffile.c error handling. 2020-06-16 17:00:06 +12:00
.gitignore Add .gitignore entries for AIX-specific intermediate build artifacts. 2015-07-08 20:44:22 -04:00
common.mk Remove PARTIAL_LINKING build mode. 2018-03-30 17:33:04 -07:00
Makefile Update copyrights for 2020 2020-01-01 12:21:45 -05:00
nls.mk Add missing gettext triggers 2020-04-28 13:35:40 +02:00