[CP] split in array into user tenant
This commit is contained in:
@ -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;
|
||||||
|
Reference in New Issue
Block a user