diff --git a/src/sql/optimizer/ob_join_order.cpp b/src/sql/optimizer/ob_join_order.cpp index 436d540a3..c8726f5f2 100644 --- a/src/sql/optimizer/ob_join_order.cpp +++ b/src/sql/optimizer/ob_join_order.cpp @@ -11409,11 +11409,10 @@ int ObJoinOrder::extract_pushdown_quals(const ObIArray &quals, ret = OB_ERR_UNEXPECTED; LOG_WARN("get unexplected null", K(qual), K(ret)); // can not push down expr with subquery - } else if (qual->has_flag(CNT_SUB_QUERY) && - (qual->has_flag(CNT_PSEUDO_COLUMN) || - qual->has_flag(CNT_PRIOR) || - qual->has_flag(CNT_ROWNUM))) { - if (force_inner_nl) { + } else if (qual->has_flag(CNT_PSEUDO_COLUMN) || + qual->has_flag(CNT_PRIOR) || + qual->has_flag(CNT_ROWNUM)) { + if (force_inner_nl && qual->has_flag(CNT_SUB_QUERY)) { ret = OB_ERR_UNEXPECTED; LOG_WARN("can not push down special qual", KPC(qual), K(ret)); }