]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Fix ndistinct estimates with system attributes
authorTomas Vondra <tomas.vondra@postgresql.org>
Fri, 26 Mar 2021 21:34:53 +0000 (22:34 +0100)
committerTomas Vondra <tomas.vondra@postgresql.org>
Fri, 26 Mar 2021 21:46:15 +0000 (22:46 +0100)
commite5eb40eed470ef98e50787ccefe6d32674437be4
treee4c2fe2780a95bf0ffea93e46e3af4da58f34a7b
parentd544671f1572a0f9138f0e4b3aff38bb683483b2
Fix ndistinct estimates with system attributes

When estimating the number of groups using extended statistics, the code
was discarding information about system attributes. This led to strange
situation that

    SELECT 1 FROM t GROUP BY ctid;

could have produced higher estimate (equal to pg_class.reltuples) than

    SELECT 1 FROM t GROUP BY a, b, ctid;

with extended statistics on (a,b). Fixed by retaining information about
the system attribute.

Backpatch all the way to 10, where extended statistics were introduced.

Author: Tomas Vondra
Backpatch-through: 10
src/backend/utils/adt/selfuncs.c