]> granicus.if.org Git - postgresql/commit
Fix planning of btree index scans using ScalarArrayOpExpr quals.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Sep 2012 16:20:34 +0000 (12:20 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 18 Sep 2012 16:20:34 +0000 (12:20 -0400)
commit807a40c551dd30c8dd5a0b3bd82f5bbb1e7fd285
treea8535d90e7e352592ed6cd85c82a83db927516bb
parent3f828fae6221d93cbef370f57ab3f234b590ca98
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.
src/backend/optimizer/path/indxpath.c
src/test/regress/expected/create_index.out
src/test/regress/sql/create_index.sql