[FEAT MERGE] Solidify session vars for functional index
This commit is contained in:
@ -251,6 +251,20 @@ public:
|
||||
const ObTableSchema* new_table_schema,
|
||||
const bool sequence_allowed,
|
||||
ObDMLResolver *dml_resolver,
|
||||
const ObSchemaChecker *schema_checker = NULL,
|
||||
const ObResolverUtils::PureFunctionCheckStatus
|
||||
check_status = ObResolverUtils::DISABLE_CHECK,
|
||||
const bool need_check_simple_column = true,
|
||||
bool use_def_collation = false,
|
||||
ObCollationType connection_collation = CS_TYPE_INVALID);
|
||||
static int build_generated_column_expr(const common::ObString &expr_str,
|
||||
ObRawExprFactory &expr_factory,
|
||||
const ObSQLSessionInfo &session_info,
|
||||
ObRawExpr *&expr,
|
||||
common::ObIArray<ObQualifiedName> &columns,
|
||||
const ObTableSchema* new_table_schema,
|
||||
const bool sequence_allowed,
|
||||
ObDMLResolver *dml_resolver,
|
||||
const ObSchemaChecker *schema_checker = NULL,
|
||||
const ObResolverUtils::PureFunctionCheckStatus
|
||||
check_status = ObResolverUtils::DISABLE_CHECK,
|
||||
@ -258,6 +272,8 @@ public:
|
||||
static int build_generated_column_expr(const common::ObString &expr_str,
|
||||
ObRawExprFactory &expr_factory,
|
||||
const ObSQLSessionInfo &session_info,
|
||||
ObSQLMode sql_mode,
|
||||
ObCollationType connection_collation,
|
||||
ObRawExpr *&expr,
|
||||
common::ObIArray<ObQualifiedName> &columns,
|
||||
const ObTableSchema* new_table_schema,
|
||||
@ -318,7 +334,9 @@ public:
|
||||
const ObSQLSessionInfo &session,
|
||||
const share::schema::ObTableSchema &table_schema,
|
||||
const share::schema::ObColumnSchemaV2 &gen_col_schema,
|
||||
ObRawExpr *&expr);
|
||||
ObRawExpr *&expr,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static int build_rls_predicate_expr(const common::ObString &expr_str,
|
||||
ObRawExprFactory &expr_factory,
|
||||
const ObSQLSessionInfo &session_info,
|
||||
@ -354,7 +372,9 @@ public:
|
||||
common::ObIArray<ObUDFInfo> &udf_info,
|
||||
common::ObIArray<ObOpRawExpr*> &op_exprs,
|
||||
bool is_prepare_protocol/*= false*/,
|
||||
TgTimingEvent tg_timing_event = TgTimingEvent::TG_TIMING_EVENT_INVALID);
|
||||
TgTimingEvent tg_timing_event = TgTimingEvent::TG_TIMING_EVENT_INVALID,
|
||||
bool use_def_collation = false,
|
||||
ObCollationType def_collation = CS_TYPE_INVALID);
|
||||
static bool is_same_raw_expr(const ObRawExpr *src, const ObRawExpr *dst);
|
||||
/// replace all `from' to `to' in the raw_expr
|
||||
static int replace_all_ref_column(ObRawExpr *&raw_expr, const common::ObIArray<ObRawExpr *> &exprs, int64_t& offset);
|
||||
@ -443,7 +463,9 @@ public:
|
||||
ObRawExpr &expr,
|
||||
const ObExprResType &dst_type,
|
||||
const ObCastMode &cm,
|
||||
ObRawExpr *&new_expr);
|
||||
ObRawExpr *&new_expr,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
|
||||
static int implict_cast_pl_udt_to_sql_udt(ObRawExprFactory *expr_factory,
|
||||
const ObSQLSessionInfo *session,
|
||||
@ -463,7 +485,9 @@ public:
|
||||
ObSysFunRawExpr *&func_expr,
|
||||
const ObSQLSessionInfo *session_info,
|
||||
bool use_def_cm = true,
|
||||
ObCastMode cm = CM_NONE);
|
||||
ObCastMode cm = CM_NONE,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static void need_extra_cast(const ObExprResType &src_type,
|
||||
const ObExprResType &dst_type,
|
||||
bool &need_extra_cast_for_src_type,
|
||||
@ -542,25 +566,32 @@ public:
|
||||
static int build_trim_expr(const share::schema::ObColumnSchemaV2 *column_schema,
|
||||
ObRawExprFactory &expr_factory,
|
||||
const ObSQLSessionInfo *session_info,
|
||||
ObRawExpr *&expr);
|
||||
ObRawExpr *&expr,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static bool need_column_conv(const ColumnItem &column, ObRawExpr &expr);
|
||||
static int build_pad_expr(ObRawExprFactory &expr_factory,
|
||||
bool is_char,
|
||||
const share::schema::ObColumnSchemaV2 *column_schema,
|
||||
ObRawExpr *&expr,
|
||||
const sql::ObSQLSessionInfo *session_info);
|
||||
const sql::ObSQLSessionInfo *session_info,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static bool need_column_conv(const ObExprResType &expected_type, const ObRawExpr &expr);
|
||||
// 此方法请谨慎使用,会丢失enum类型的 enum_set_values
|
||||
static int build_column_conv_expr(ObRawExprFactory &expr_factory,
|
||||
const share::schema::ObColumnSchemaV2 *column_schema,
|
||||
ObRawExpr *&expr,
|
||||
const sql::ObSQLSessionInfo *session_info);
|
||||
const sql::ObSQLSessionInfo *session_info,
|
||||
const ObLocalSessionVar *local_vars = NULL);
|
||||
static int build_column_conv_expr(ObRawExprFactory &expr_factory,
|
||||
common::ObIAllocator &allocator,
|
||||
const ObColumnRefRawExpr &col_expr,
|
||||
ObRawExpr *&expr,
|
||||
const ObSQLSessionInfo *session_info,
|
||||
bool is_generated_column = false);
|
||||
bool is_generated_column = false,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static int build_column_conv_expr(const ObSQLSessionInfo *session_info,
|
||||
ObRawExprFactory &expr_factory,
|
||||
const common::ObObjType &type,
|
||||
@ -571,7 +602,9 @@ public:
|
||||
const common::ObIArray<common::ObString> *type_infos,
|
||||
ObRawExpr *&expr,
|
||||
bool is_in_pl = false,
|
||||
bool is_generated_column = false);
|
||||
bool is_generated_column = false,
|
||||
const ObLocalSessionVar *local_vars = NULL,
|
||||
int64_t local_var_id = OB_INVALID_INDEX_INT64);
|
||||
static int build_var_int_expr(ObRawExprFactory &expr_factory,
|
||||
ObConstRawExpr *&expr);
|
||||
static int build_default_expr(ObRawExprFactory &expr_factory,
|
||||
@ -1151,6 +1184,10 @@ public:
|
||||
const ObSQLSessionInfo *session_info,
|
||||
ObAggFunRawExpr *&expr);
|
||||
|
||||
static int extract_local_vars_for_gencol(ObRawExpr *expr,
|
||||
const ObSQLMode sql_mode,
|
||||
ObColumnSchemaV2 &gen_col);
|
||||
|
||||
private :
|
||||
static int create_real_cast_expr(ObRawExprFactory &expr_factory,
|
||||
ObRawExpr *src_expr,
|
||||
|
||||
Reference in New Issue
Block a user