From 9d1ac2f5fa4043529dbaff5ebdc73405fa73207b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 11 Jan 2011 12:12:04 -0500 Subject: [PATCH] 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. --- src/backend/optimizer/path/indxpath.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index ab3d8d00b7..a3101d7ea7 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); }