pgsql: Do ScalarArrayOp estimation correctly when array is a stable exp - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Do ScalarArrayOp estimation correctly when array is a stable exp
Date
Msg-id E1WGyJA-0000cU-Kd@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Do ScalarArrayOp estimation correctly when array is a stable expression.

Most estimation functions apply estimate_expression_value to see if they
can reduce an expression to a constant; the key difference is that it
allows evaluation of stable as well as immutable functions in hopes of
ending up with a simple Const node.  scalararraysel didn't get the memo
though, and neither did gincost_opexpr/gincost_scalararrayopexpr.  Fix
that, and remove a now-unnecessary estimate_expression_value step in the
subsidiary function scalararraysel_containment.

Per complaint from Alexey Klyukin.  Back-patch to 9.3.  The problem
goes back further, but I'm hesitant to change estimation behavior in
long-stable release branches.

Branch
------
REL9_3_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/e8655a77f327bd3fca0f4aaf14b86b540c64ecdf

Modified Files
--------------
src/backend/utils/adt/array_selfuncs.c |   15 ++++++++-------
src/backend/utils/adt/selfuncs.c       |   22 ++++++++++++++++++----
2 files changed, 26 insertions(+), 11 deletions(-)


pgsql-committers by date:

Previous
From: Noah Misch
Date:
Subject: pgsql: Shore up ADMIN OPTION restrictions.
Next
From: Tom Lane
Date:
Subject: pgsql: Do ScalarArrayOp estimation correctly when array is a stable exp