aboutsummaryrefslogtreecommitdiff
path: root/src/backend/optimizer/path/indxpath.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/path/indxpath.c')
-rw-r--r--src/backend/optimizer/path/indxpath.c9
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;
/*