Fix RCTE bugs

This commit is contained in:
xianyu-w
2023-08-11 03:48:48 +00:00
committed by ob-robot
parent 4a847be5a7
commit 02a2a424fa
22 changed files with 493 additions and 350 deletions

View File

@ -1079,7 +1079,8 @@ public:
ObSelectStmt &left_stmt,
ObSelectStmt &right_stmt,
ObSelectStmt *select_stmt,
const bool to_left_type = false);
const bool is_mysql_recursive_union = false,
ObIArray<ObString> *rcte_col_name = NULL);
static int gen_set_target_list(ObIAllocator *allocator,
ObSQLSessionInfo *session_info,
@ -1087,7 +1088,8 @@ public:
ObIArray<ObSelectStmt*> &left_stmts,
ObIArray<ObSelectStmt*> &right_stmts,
ObSelectStmt *select_stmt,
const bool to_left_type = false);
const bool is_mysql_recursive_union = false,
ObIArray<ObString> *rcte_col_name = NULL);
static int gen_set_target_list(ObIAllocator *allocator,
ObSQLSessionInfo *session_info,
@ -1106,7 +1108,8 @@ public:
ObIArray<ObSelectStmt*> &left_stmts,
ObIArray<ObSelectStmt*> &right_stmts,
ObIArray<ObExprResType> *res_types,
const bool to_left_type = false);
const bool is_mysql_recursive_union = false,
ObIArray<ObString> *rcte_col_name = NULL);
static int add_cast_to_set_list(ObSQLSessionInfo *session_info,
ObRawExprFactory *expr_factory,
@ -1114,6 +1117,13 @@ public:
const ObExprResType &res_type,
const int64_t idx);
static int add_column_conv_to_set_list(ObSQLSessionInfo *session_info,
ObRawExprFactory *expr_factory,
ObIArray<ObSelectStmt*> &stmts,
const ObExprResType &res_type,
const int64_t idx,
ObIArray<ObString> *rcte_col_name);
static int check_subquery_has_ref_assign_user_var(ObRawExpr *expr, bool &is_has);
/**