From 55437eb8e7ffacab411f76caa9535784ec1fd3ae Mon Sep 17 00:00:00 2001 From: obdev Date: Sat, 9 Sep 2023 13:05:15 +0000 Subject: [PATCH] fix check stack overflow expr: T_OP_ROW can be nested --- src/sql/code_generator/ob_static_engine_expr_cg.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/sql/code_generator/ob_static_engine_expr_cg.cpp b/src/sql/code_generator/ob_static_engine_expr_cg.cpp index 5d34227bb5..c5bac57a29 100644 --- a/src/sql/code_generator/ob_static_engine_expr_cg.cpp +++ b/src/sql/code_generator/ob_static_engine_expr_cg.cpp @@ -1271,9 +1271,12 @@ int ObStaticEngineExprCG::alloc_so_check_exprs(const ObIArray &raw_ // stack overflow check expr can not added above T_OP_ROW if (T_OP_ROW == e->type_ && e->parent_cnt_ > 0) { e = e->parents_[0]; - if (T_OP_ROW == e->type_) { - ret = OB_ERR_UNEXPECTED; - LOG_WARN("T_OP_ROW can not be nested", K(ret)); + if (T_OP_ROW == e->type_ && e->parent_cnt_ > 0) { + e = e->parents_[0]; + if (T_OP_ROW == e->type_) { + ret = OB_ERR_UNEXPECTED; + LOG_WARN("T_OP_ROW can not be nested twice", K(ret)); + } } } if (OB_SUCC(ret) && e->parent_cnt_ > 0) {