pgsql: Fix handling of bare boolean expressions in mcv_get_match_bitmap
От | Tom Lane |
---|---|
Тема | pgsql: Fix handling of bare boolean expressions in mcv_get_match_bitmap |
Дата | |
Msg-id | E1oK2YU-000T1I-6H@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Fix handling of bare boolean expressions in mcv_get_match_bitmap. Since v14, the extended stats machinery will try to estimate for otherwise-unsupported boolean expressions if they match an expression available from an extended stats object. mcv.c did not get the memo about this, and would spit up with "unknown clause type". Fortunately the case is easy to handle, since we can expect the expression yields boolean. While here, replace some not-terribly-on-point assertions with simpler runtime tests for lookup failure. That seems appropriate so that we get an elog not a crash if we somehow get to the new it-should-be-a-bool-expression code with a subexpression that doesn't match any stats column. Per report from Danny Shemesh. Thanks to Justin Pryzby for preliminary investigation. Discussion: https://postgr.es/m/CAFZC=QqD6=27wQPOW1pbRa98KPyuyn+7cL_Ay_Ck-roZV84vHg@mail.gmail.com Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/3fe2fc6bbdb251c78a88cdd41e400014be76f80e Modified Files -------------- src/backend/statistics/mcv.c | 51 ++++++++++++++++++++++----------- src/test/regress/expected/stats_ext.out | 19 ++++++++---- src/test/regress/sql/stats_ext.sql | 17 +++++++---- 3 files changed, 60 insertions(+), 27 deletions(-)
В списке pgsql-committers по дате отправления: