]> granicus.if.org Git - postgresql/commit
Fix handling of opclauses in extended statistics
authorTomas Vondra <tomas.vondra@postgresql.org>
Fri, 12 Jul 2019 22:12:16 +0000 (00:12 +0200)
committerTomas Vondra <tomas.vondra@postgresql.org>
Thu, 18 Jul 2019 09:29:38 +0000 (11:29 +0200)
commite8b6ae2130e3a95bb776708a9a7c9cb21fe8ac87
treea4da53b2d8031d5d667f443a9ee294cab28e8129
parenta4303a078c661ebafe8c8c2167b2ad9bf16b32ce
Fix handling of opclauses in extended statistics

We expect opclauses to have exactly one Var and one Const, but the code
was checking the Const by calling is_pseudo_constant_clause() which is
incorrect - we need a proper constant.

Fixed by using plain IsA(x,Const) to check type of the node. We need to
do these checks in two places, so move it into a separate function that
can be called in both places.

Reported by Andreas Seltenreich, based on crash reported by sqlsmith.

Backpatch to v12, where this code was introduced.

Discussion: https://postgr.es/m/8736jdhbhc.fsf%40ansel.ydns.eu
Backpatch-to: 12
src/backend/statistics/extended_stats.c
src/backend/statistics/mcv.c
src/include/statistics/extended_stats_internal.h