fix for expandvecop, set_payload_shallow will unset null,leading to dup_expr null val != org_expr

This commit is contained in:
lucky-sinx 2024-12-02 09:14:56 +00:00 committed by ob-robot
parent 3fd27542f2
commit 75546edf81

View File

@ -365,8 +365,10 @@ int ObExpandVecOp::duplicate_expr<VEC_CONTINUOUS>(ObExpr *from, ObExpr *to)
ObDiscreteFormat *to_data = static_cast<ObDiscreteFormat *>(to_vec);
ObBitmapNullVectorBase *from_nulls = static_cast<ObBitmapNullVectorBase *>(from_vec);
for (int i = 0; i < brs_.size_; i++) {
if (brs_.skip_->at(i) || from_nulls->is_null(i)) {
if (brs_.skip_->at(i)) {
to_data->set_payload_shallow(i, nullptr, 0);
} else if (from_nulls->is_null(i)) {
to_data->set_null(i);
} else {
to_data->set_payload_shallow(i, from_data->get_payload(i), from_data->get_length(i));
}