fix query pushdown into set stmt bug

This commit is contained in:
yinyj17
2023-07-26 06:48:19 +00:00
committed by ob-robot
parent 89d5d2bb5e
commit ed7dc58c97
4 changed files with 70 additions and 0 deletions

View File

@ -3245,6 +3245,21 @@ int ObRawExprUtils::extract_set_op_exprs(const ObRawExpr *raw_expr,
return ret;
}
int ObRawExprUtils::extract_set_op_exprs(const ObIArray<ObRawExpr*> &exprs,
common::ObIArray<ObRawExpr*> &set_op_exprs)
{
int ret = OB_SUCCESS;
for (int64_t i = 0; OB_SUCC(ret) && i < exprs.count(); ++i) {
if (OB_ISNULL(exprs.at(i))) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("Expr is NULL", K(ret), K(i));
} else if (OB_FAIL(extract_set_op_exprs(exprs.at(i), set_op_exprs))) {
LOG_WARN("Failed to extract column exprs", K(ret));
}
}
return ret;
}
int ObRawExprUtils::extract_column_exprs(const ObRawExpr *raw_expr,
ObIArray<ObRawExpr*> &column_exprs,
bool need_pseudo_column)

View File

@ -372,6 +372,8 @@ public:
static bool is_all_column_exprs(const common::ObIArray<ObRawExpr*> &exprs);
static int extract_set_op_exprs(const ObRawExpr *raw_expr,
common::ObIArray<ObRawExpr*> &set_op_exprs);
static int extract_set_op_exprs(const ObIArray<ObRawExpr*> &exprs,
common::ObIArray<ObRawExpr*> &set_op_exprs);
/// extract column exprs from the raw expr
static int extract_column_exprs(const ObRawExpr *raw_expr,
common::ObIArray<ObRawExpr*> &column_exprs,