Обсуждение: pgsql: Fix ndistinct estimates with system attributes

Поиск
Список
Период
Сортировка

pgsql: Fix ndistinct estimates with system attributes

От
Tomas Vondra
Дата:
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

Branch
------
REL_13_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/67251c82af87865989eb90c7e8f4546cc0d66e6d

Modified Files
--------------
src/backend/utils/adt/selfuncs.c        | 6 +++---
src/test/regress/expected/stats_ext.out | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)