Fix ndistinct estimates with system attributes
Tomas Vondra <tomas.vondra@postgresql.org>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/utils/adt/selfuncs.c | modified | +3 −3 |
| src/test/regress/expected/stats_ext.out | modified | +1 −1 |