pgsql: Skip system attributes when applying mvdistinct stats

From: Tomas Vondra <tomas(dot)vondra(at)postgresql(dot)org>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Skip system attributes when applying mvdistinct stats
Date: 2019-11-16 01:34:19
Message-ID: E1iVmyh-0002as-53@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Skip system attributes when applying mvdistinct stats

When estimating number of distinct groups, we failed to ignore system
attributes when matching the group expressions to mvdistinct stats,
causing failures like

ERROR: negative bitmapset member not allowed

Fix that by simply skipping anything that is not a regular attribute.
Backpatch to PostgreSQL 10, where the extended stats were introduced.

Bug: #16111
Reported-by: Tuomas Leikola
Author: Tomas Vondra
Backpatch-through: 10
Discussion: https://postgr.es/m/16111-687799584c3a7e73@postgresql.org

Branch
------
REL_12_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/28555a53cb75d00ed0e73f63a6481b4fffcc3dea

Modified Files
--------------
src/backend/utils/adt/selfuncs.c | 19 ++++++++++++++-----
src/test/regress/expected/stats_ext.out | 7 +++++++
src/test/regress/sql/stats_ext.sql | 3 +++
3 files changed, 24 insertions(+), 5 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tomas Vondra 2019-11-16 01:34:31 pgsql: Skip system attributes when applying mvdistinct stats
Previous Message Tomas Vondra 2019-11-16 01:34:08 pgsql: Skip system attributes when applying mvdistinct stats