During das partition range pruning during execution, type protection of virtual generated columns is required.

This commit is contained in:
yaojing624
2024-02-29 05:44:23 +00:00
committed by ob-robot
parent 2776bafa0e
commit cdb2699b00
3 changed files with 219 additions and 48 deletions

View File

@ -485,7 +485,8 @@ public:
int64_t range_key_count,
uint64_t table_id,
ObEvalCtx &eval_ctx,
common::ObNewRange &partition_range);
common::ObNewRange &partition_range,
ObArenaAllocator &allocator);
static int revise_hash_part_object(common::ObObj &obj,
const ObNewRow &row,
@ -698,6 +699,28 @@ public:
const bool check_for_path_char, const int64_t max_ident_len);
private:
static bool check_mysql50_prefix(common::ObString &db_name);
static bool part_expr_has_virtual_column(const ObExpr *part_expr);
static int get_range_for_vector(
ObObj *start_row_key,
ObObj *end_row_key,
int64_t range_key_count,
uint64_t table_id,
common::ObNewRange &part_range);
static int get_partition_range_common(
ObObj *function_obj,
const share::schema::ObPartitionFuncType part_type,
const ObExpr *part_expr,
ObEvalCtx &eval_ctx);
static int get_range_for_scalar(ObObj *start_row_key,
ObObj *end_row_key,
ObObj *function_obj,
const share::schema::ObPartitionFuncType part_type,
const ObExpr *part_expr,
int64_t range_key_count,
uint64_t table_id,
ObEvalCtx &eval_ctx,
common::ObNewRange &part_range,
ObArenaAllocator &allocator);
struct SessionInfoCtx
{
common::ObCollationType collation_type_;