diff --git a/src/backend/optimizer/path/costsize.c b/src/backend/optimizer/path/costsize.c index 9b35253fe5..46a4639eb5 100644 --- a/src/backend/optimizer/path/costsize.c +++ b/src/backend/optimizer/path/costsize.c @@ -2579,12 +2579,20 @@ adjust_semi_join(PlannerInfo *root, JoinPath *path, SpecialJoinInfo *sjinfo, */ if (indexed_join_quals) { - List *nrclauses; + if (path->joinrestrictinfo != NIL) + { + List *nrclauses; - nrclauses = select_nonredundant_join_clauses(root, - path->joinrestrictinfo, - path->innerjoinpath); - *indexed_join_quals = (nrclauses == NIL); + nrclauses = select_nonredundant_join_clauses(root, + path->joinrestrictinfo, + path->innerjoinpath); + *indexed_join_quals = (nrclauses == NIL); + } + else + { + /* a clauseless join does NOT qualify */ + *indexed_join_quals = false; + } } return true;