[FEAT MERGE] Solidify session vars for functional index

This commit is contained in:
2149
2023-12-12 06:42:36 +00:00
committed by ob-robot
parent db82b0b5cd
commit 58aad590f1
189 changed files with 3671 additions and 1554 deletions

View File

@ -362,12 +362,23 @@ public:
const ObSQLSessionInfo *session,
common::ObCastMode &cast_mode);
static int get_default_cast_mode(const ObSQLSessionInfo *session, common::ObCastMode &cast_mode);
static void get_default_cast_mode(const ObSQLMode sql_mode, ObCastMode &cast_mode);
// 比上面三个方法多了一些cast mode的设置,例如:
// CM_EXPLICIT_CAST, CM_ZERO_FILL, CM_STRICT_MODE
static int get_default_cast_mode(const bool is_explicit_cast,
const uint32_t result_flag,
const ObSQLSessionInfo *session,
common::ObCastMode &cast_mode);
static void get_default_cast_mode(const bool is_explicit_cast,
const uint32_t result_flag,
const stmt::StmtType &stmt_type,
bool is_ignore_stmt,
ObSQLMode sql_mode,
ObCastMode &cast_mode);
static void get_default_cast_mode(const stmt::StmtType &stmt_type,
bool is_ignore_stmt,
ObSQLMode sql_mode,
ObCastMode &cast_mode);
static int check_well_formed_str(const ObString &src_str, const ObCollationType cs_type,
ObString &dst_str, bool &is_null,
const bool is_strict_mode,
@ -497,6 +508,17 @@ public:
static int wrap_column_convert_ctx(const common::ObExprCtx &expr_ctx, common::ObCastCtx &column_conv_ctx);
static void init_type_ctx(const ObSQLSessionInfo *session, ObExprTypeCtx &type_ctx);
static int merge_solidified_vars_into_type_ctx(ObExprTypeCtx &type_ctx,
const share::schema::ObLocalSessionVar &session_vars_snapshot);
static int merge_solidified_var_into_dtc_params(const share::schema::ObLocalSessionVar *local_vars,
const ObTimeZoneInfo *local_timezone,
ObDataTypeCastParams &dtc_param);
static int merge_solidified_var_into_sql_mode(const share::schema::ObLocalSessionVar *local_vars,
ObSQLMode &sql_mode);
static int merge_solidified_var_into_collation(const share::schema::ObLocalSessionVar &session_vars_snapshot,
ObCollationType &cs_type);
static int merge_solidified_var_into_max_allowed_packet(const share::schema::ObLocalSessionVar *local_vars,
int64_t &max_allowed_packet);
static bool is_oracle_sys_view(const ObString &table_name);