[CP] split in array into user tenant

This commit is contained in:
obdev
2024-02-08 00:50:46 +00:00
committed by ob-robot
parent c1d3e97f93
commit d2acf1e002

View File

@ -55,6 +55,8 @@ bool Row<ObDatum>::equal_key(const Row<ObDatum> &other, void **cmp_funcs, const
{ {
bool equal_ret = false; bool equal_ret = false;
if (OB_ISNULL(other.elems_) || OB_ISNULL(elems_)) { if (OB_ISNULL(other.elems_) || OB_ISNULL(elems_)) {
} else if (other.elems_ == elems_) {
equal_ret = true;
} else { } else {
bool is_equal = true; bool is_equal = true;
int curr_idx = idx; int curr_idx = idx;
@ -167,11 +169,16 @@ int ObExprInHashMap<T>::set_refactored(const Row<T> &row)
tmp_row_key.meta_ = &meta_; tmp_row_key.meta_ = &meta_;
if (OB_ISNULL(arr_ptr = const_cast<ObArray<Row<T>> *> (map_.get(tmp_row_key)))) { if (OB_ISNULL(arr_ptr = const_cast<ObArray<Row<T>> *> (map_.get(tmp_row_key)))) {
ObArray<Row<T>> arr; ObArray<Row<T>> arr;
arr.set_tenant_id(MTL_ID()); ret = map_.set_refactored(tmp_row_key, arr);
if (OB_FAIL(arr.push_back(row))) { if (OB_SUCC(ret)) {
LOG_WARN("failed to load row", K(ret)); arr_ptr = const_cast<ObArray<Row<T>> *> (map_.get(tmp_row_key));
} else { CK (OB_NOT_NULL(arr_ptr));
ret = map_.set_refactored(tmp_row_key, arr); if (OB_SUCC(ret)) {
arr_ptr->set_tenant_id(MTL_ID());
if (OB_FAIL(arr_ptr->push_back(row))) {
LOG_WARN("failed to push row", K(ret));
}
}
} }
} else { } else {
int exist = ObExprInHashMap<T>::HASH_CMP_FALSE; int exist = ObExprInHashMap<T>::HASH_CMP_FALSE;