diff options
Diffstat (limited to 'src/backend/optimizer/path/indxpath.c')
-rw-r--r-- | src/backend/optimizer/path/indxpath.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c index b8000da56d9..3800f0cdfb7 100644 --- a/src/backend/optimizer/path/indxpath.c +++ b/src/backend/optimizer/path/indxpath.c @@ -3557,10 +3557,13 @@ relation_has_unique_index_for(PlannerInfo *root, RelOptInfo *rel, /* * If the index is not unique, or not immediately enforced, or if it's - * a partial index that doesn't match the query, it's useless here. + * a partial index, it's useless here. We're unable to make use of + * predOK partial unique indexes due to the fact that + * check_index_predicates() also makes use of join predicates to + * determine if the partial index is usable. Here we need proofs that + * hold true before any joins are evaluated. */ - if (!ind->unique || !ind->immediate || - (ind->indpred != NIL && !ind->predOK)) + if (!ind->unique || !ind->immediate || ind->indpred != NIL) continue; /* |