fix check stack overflow expr: T_OP_ROW can be nested
This commit is contained in:
		@ -1269,11 +1269,14 @@ int ObStaticEngineExprCG::alloc_so_check_exprs(const ObIArray<ObRawExpr *> &raw_
 | 
				
			|||||||
        if (ecd->need_stack_check_) {
 | 
					        if (ecd->need_stack_check_) {
 | 
				
			||||||
          ObExpr *e = ecd->expr_;
 | 
					          ObExpr *e = ecd->expr_;
 | 
				
			||||||
          // stack overflow check expr can not added above T_OP_ROW
 | 
					          // 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_ && e->parent_cnt_ > 0) {
 | 
					            if (T_OP_ROW == e->type_ && e->parent_cnt_ > 0) {
 | 
				
			||||||
              e = e->parents_[0];
 | 
					              e = e->parents_[0];
 | 
				
			||||||
              if (T_OP_ROW == e->type_) {
 | 
					              if (T_OP_ROW == e->type_) {
 | 
				
			||||||
                ret = OB_ERR_UNEXPECTED;
 | 
					                ret = OB_ERR_UNEXPECTED;
 | 
				
			||||||
              LOG_WARN("T_OP_ROW can not be nested", K(ret));
 | 
					                LOG_WARN("T_OP_ROW can not be nested twice", K(ret));
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          if (OB_SUCC(ret) && e->parent_cnt_ > 0) {
 | 
					          if (OB_SUCC(ret) && e->parent_cnt_ > 0) {
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user