Fix handling of clauses incompatible with extended statistics
authorTomas Vondra <tomas.vondra@postgresql.org>
Tue, 6 Apr 2021 14:12:37 +0000 (16:12 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Tue, 6 Apr 2021 14:56:06 +0000 (16:56 +0200)
commit518442c7f334f3b05ea28b7ef50f1b551cfcc23e
tree5a24b7e2dea054ed0fb094afbb8dcbd7fa441d70
parent7ab96cf6b312cfcd79cdc1a69c6bdb75de0ed30f
Fix handling of clauses incompatible with extended statistics

Handling of incompatible clauses while applying extended statistics was
a bit confused - while handling a mix of compatible and incompatible
clauses it sometimes incorrectly treated the incompatible clauses as
compatible, resulting in a crash.

Fixed by reworking the code applying the selected statistics object to
make it easier to understand, and adding a proper compatibility check.

Reported-by: David Rowley
Discussion: https://postgr.es/m/CAApHDvpYT10-nkSp8xXe-nbO3jmoaRyRFHbzh-RWMfAJynqgpQ%40mail.gmail.com
src/backend/statistics/extended_stats.c
src/backend/statistics/mcv.c
src/test/regress/expected/stats_ext.out
src/test/regress/sql/stats_ext.sql