aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-01-11 12:12:04 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2011-01-11 12:13:02 -0500
commit9d1ac2f5fa4043529dbaff5ebdc73405fa73207b (patch)
tree3491d2cf0b40a285a965b0ab792d47860137807b
parent1c400d330934eb6d70982af522f2bc0458eef48d (diff)
downloadpostgresql-9d1ac2f5fa4043529dbaff5ebdc73405fa73207b.tar.gz
postgresql-9d1ac2f5fa4043529dbaff5ebdc73405fa73207b.zip
Tweak create_index_paths()'s test for whether to consider a bitmap scan.
Per my note of a couple days ago, create_index_paths would refuse to consider any path at all for GIN indexes if the selectivity estimate came out as 1.0; not even if you tried to force it with enable_seqscan. While this isn't really a bad outcome in practice, it could be annoying for testing purposes. Adjust the test for "is this path only useful for sorting" so that it doesn't fire on paths with nil pathkeys, which will include all GIN paths.
-rw-r--r--src/backend/optimizer/path/indxpath.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index ab3d8d00b75..a3101d7ea73 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -196,8 +196,8 @@ create_index_paths(PlannerInfo *root, RelOptInfo *rel)
add_path(rel, (Path *) ipath);
if (ipath->indexinfo->amhasgetbitmap &&
- ipath->indexselectivity < 1.0 &&
- !ScanDirectionIsBackward(ipath->indexscandir))
+ (ipath->path.pathkeys == NIL ||
+ ipath->indexselectivity < 1.0))
bitindexpaths = lappend(bitindexpaths, ipath);
}