pgsql: Fix planning of btree index scans using ScalarArrayOpExpr quals. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Fix planning of btree index scans using ScalarArrayOpExpr quals.
Date
Msg-id E1TE0Xy-0006tu-6a@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Fix planning of btree index scans using ScalarArrayOpExpr quals.

In commit 9e8da0f75731aaa7605cf4656c21ea09e84d2eb1, I improved btree
to handle ScalarArrayOpExpr quals natively, so that constructs like
"indexedcol IN (list)" could be supported by index-only scans.  Using
such a qual results in multiple scans of the index, under-the-hood.
I went to some lengths to ensure that this still produces rows in index
order ... but I failed to recognize that if a higher-order index column
is lacking an equality constraint, rescans can produce out-of-order
data from that column.  Tweak the planner to not expect sorted output
in that case.  Per trouble report from Robert McGehee.

Branch
------
REL9_2_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/3cccc6990b66265ad7c4bfbe5789ce571a39d876

Modified Files
--------------
src/backend/optimizer/path/indxpath.c      |   15 ++++++++-
src/test/regress/expected/create_index.out |   45 ++++++++++++++++++++++++++++
src/test/regress/sql/create_index.sql      |   24 +++++++++++++++
3 files changed, 83 insertions(+), 1 deletions(-)


pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql: Fix array_typanalyze to work for domains over arrays.
Next
From: Tom Lane
Date:
Subject: pgsql: Fix planning of btree index scans using ScalarArrayOpExpr quals.