Fix table location cast to enumset deserialize failed
This commit is contained in:
@ -4329,6 +4329,7 @@ int ValueItemExpr::serialize(char *buf, const int64_t buf_len, int64_t &pos) con
|
||||
} else if (QUESTMARK_TYPE == type_) {
|
||||
OB_UNIS_ENCODE(idx_);
|
||||
}
|
||||
OB_UNIS_ENCODE(dst_type_);
|
||||
if (ob_is_enum_or_set_type(dst_type_)) {
|
||||
CK(OB_NOT_NULL(enum_set_values_));
|
||||
OB_UNIS_ENCODE_ARRAY(enum_set_values_, enum_set_values_cnt_);
|
||||
@ -4349,6 +4350,7 @@ int64_t ValueItemExpr::get_serialize_size() const
|
||||
} else if (QUESTMARK_TYPE == type_) {
|
||||
OB_UNIS_ADD_LEN(idx_);
|
||||
}
|
||||
OB_UNIS_ADD_LEN(dst_type_);
|
||||
if (ob_is_enum_or_set_type(dst_type_)) {
|
||||
OB_UNIS_ADD_LEN_ARRAY(enum_set_values_, enum_set_values_cnt_);
|
||||
}
|
||||
@ -4372,6 +4374,7 @@ int ValueItemExpr::deserialize(common::ObIAllocator &allocator, const char *buf,
|
||||
} else if (QUESTMARK_TYPE == type_) {
|
||||
OB_UNIS_DECODE(idx_);
|
||||
}
|
||||
OB_UNIS_DECODE(dst_type_);
|
||||
if (ob_is_enum_or_set_type(dst_type_)) {
|
||||
OB_UNIS_DECODE(enum_set_values_cnt_);
|
||||
if (enum_set_values_cnt_ > 0) {
|
||||
@ -4394,6 +4397,7 @@ int ValueItemExpr::deep_copy(ObIAllocator &allocator, ValueItemExpr &dst) const
|
||||
} else if (CONST_EXPR_TYPE == type_) {
|
||||
OZ(expr_->deep_copy(allocator, dst.expr_));
|
||||
}
|
||||
dst.dst_type_ = dst_type_;
|
||||
if (ob_is_enum_or_set_type(dst_type_)) {
|
||||
dst.enum_set_values_cnt_ = enum_set_values_cnt_;
|
||||
dst.enum_set_values_ =
|
||||
|
||||
Reference in New Issue
Block a user