Fix type deduce stack overflow in ps mode
This commit is contained in:
		| @ -398,7 +398,13 @@ int ObRawExpr::deduce_type(const ObSQLSessionInfo *session_info) | |||||||
| int ObRawExpr::formalize(const ObSQLSessionInfo *session_info) | int ObRawExpr::formalize(const ObSQLSessionInfo *session_info) | ||||||
| { | { | ||||||
|   int ret = OB_SUCCESS; |   int ret = OB_SUCCESS; | ||||||
|   if (OB_FAIL(extract_info())) { |   bool is_stack_overflow = false; | ||||||
|  |   if (OB_FAIL(check_stack_overflow(is_stack_overflow))) { | ||||||
|  |     LOG_WARN("fail to check stack overflow", K(ret), K(is_stack_overflow)); | ||||||
|  |   } else if (is_stack_overflow) { | ||||||
|  |     ret = OB_SIZE_OVERFLOW; | ||||||
|  |     LOG_WARN("too deep recursive", K(ret), K(is_stack_overflow)); | ||||||
|  |   } else if (OB_FAIL(extract_info())) { | ||||||
|     LOG_WARN("failed to extract info", K(*this)); |     LOG_WARN("failed to extract info", K(*this)); | ||||||
|   } else if (OB_FAIL(deduce_type(session_info))) { |   } else if (OB_FAIL(deduce_type(session_info))) { | ||||||
|     LOG_WARN("failed to deduce type", K(*this)); |     LOG_WARN("failed to deduce type", K(*this)); | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev