提交 af654e3a 编写于 作者: O obdev 提交者: wangzelin.wzl

when pushdown rewrite, stack oversize

上级 18019f2b
......@@ -1140,7 +1140,13 @@ int ObTransformPredicateMoveAround::pushdown_into_joined_table(ObDMLStmt* stmt,
ObSEArray<ObRawExpr*, 4> all_preds;
ObSEArray<ObRawExpr*, 4> old_join_condition;
/// STEP 1. deduce new join conditions
if (OB_ISNULL(stmt) || OB_ISNULL(joined_table) || OB_ISNULL(joined_table->left_table_) ||
bool is_stack_overflow = false;
if (OB_FAIL(check_stack_overflow(is_stack_overflow))) {
LOG_WARN("failed to check stack overflow", K(ret));
} else if (is_stack_overflow) {
ret = OB_SIZE_OVERFLOW;
LOG_WARN("too deep recursive", K(ret), K(is_stack_overflow));
} else if (OB_ISNULL(stmt) || OB_ISNULL(joined_table) || OB_ISNULL(joined_table->left_table_) ||
OB_ISNULL(joined_table->right_table_)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("params are invalid", K(ret), K(stmt), K(joined_table));
......@@ -1450,7 +1456,13 @@ int ObTransformPredicateMoveAround::pushdown_into_table(
ObSEArray<ObRawExpr*, 8> table_preds;
ObSEArray<ObRawExpr*, 8> candi_preds;
ObSEArray<ObRawExpr*, 8> table_pullup_preds;
if (OB_ISNULL(stmt) || OB_ISNULL(table_item)) {
bool is_stack_overflow = false;
if (OB_FAIL(check_stack_overflow(is_stack_overflow))) {
LOG_WARN("failed to check stack overflow", K(ret));
} else if (is_stack_overflow) {
ret = OB_SIZE_OVERFLOW;
LOG_WARN("too deep recursive", K(ret), K(is_stack_overflow));
} else if (OB_ISNULL(stmt) || OB_ISNULL(table_item)) {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("params have null", K(ret), K(stmt), K(table_item));
} else if (OB_FAIL(get_pushdown_predicates(*stmt, *table_item, preds, table_preds))) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册