From 85bca4f17b778f988743faaca0fc0deae3265da9 Mon Sep 17 00:00:00 2001 From: zzg19950727 <1071026277@qq.com> Date: Wed, 14 Jun 2023 02:59:50 +0000 Subject: [PATCH] fix process filter bug --- src/sql/optimizer/ob_log_plan.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/sql/optimizer/ob_log_plan.cpp b/src/sql/optimizer/ob_log_plan.cpp index 2447ef8a9..1a38b3d5f 100644 --- a/src/sql/optimizer/ob_log_plan.cpp +++ b/src/sql/optimizer/ob_log_plan.cpp @@ -1196,7 +1196,8 @@ int ObLogPlan::generate_inner_join_detectors(const ObIArray &table_i expr->has_flag(CNT_SUB_QUERY)) { //do nothing } else if (expr->get_relation_ids().is_empty() && - !expr->is_const_expr()) { + !expr->is_const_expr() && + ObOptimizerUtil::find_item(all_table_filters, expr)) { //bug fix:48314988 } else if (OB_FAIL(table_filters.push_back(expr))) { LOG_WARN("failed to push back expr", K(ret)); @@ -1639,11 +1640,11 @@ int ObLogPlan::pushdown_where_filters(JoinedTable* joined_table, if (OB_FAIL(new_quals.push_back(qual))) { LOG_WARN("failed to push back expr", K(ret)); } - } else if (qual->get_relation_ids().is_empty() && - qual->is_const_expr()) { + } else if (qual->get_relation_ids().is_empty()) { if (OB_FAIL(left_quals.push_back(qual))) { LOG_WARN("failed to push back expr", K(ret)); - } else if (OB_FAIL(right_quals.push_back(qual))) { + } else if (qual->is_const_expr() && + OB_FAIL(right_quals.push_back(qual))) { LOG_WARN("failed to push back expr", K(ret)); } } else if (LEFT_OUTER_JOIN == join_type &&