Fix clear filter mistakenly in filter IN pushdown.
This commit is contained in:
@ -2706,10 +2706,7 @@ void PushdownFilterInfo::reset()
|
|||||||
}
|
}
|
||||||
allocator_ = nullptr;
|
allocator_ = nullptr;
|
||||||
}
|
}
|
||||||
if (OB_NOT_NULL(filter_)) {
|
filter_ = nullptr;
|
||||||
filter_->clear();
|
|
||||||
filter_ = nullptr;
|
|
||||||
}
|
|
||||||
param_ = nullptr;
|
param_ = nullptr;
|
||||||
context_ = nullptr;
|
context_ = nullptr;
|
||||||
is_inited_ = false;
|
is_inited_ = false;
|
||||||
|
|||||||
@ -903,7 +903,7 @@ public:
|
|||||||
virtual void clear_in_datums()
|
virtual void clear_in_datums()
|
||||||
{
|
{
|
||||||
if (WHITE_OP_IN == filter_.get_op_type()) {
|
if (WHITE_OP_IN == filter_.get_op_type()) {
|
||||||
datum_params_.reset();
|
datum_params_.clear();
|
||||||
param_set_.destroy();
|
param_set_.destroy();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -60,6 +60,11 @@ ObTableIterParam::ObTableIterParam()
|
|||||||
ObTableIterParam::~ObTableIterParam()
|
ObTableIterParam::~ObTableIterParam()
|
||||||
{
|
{
|
||||||
cg_read_info_handle_.reset();
|
cg_read_info_handle_.reset();
|
||||||
|
if (nullptr != pushdown_filter_) {
|
||||||
|
pushdown_filter_->clear();
|
||||||
|
pushdown_filter_ = nullptr;
|
||||||
|
}
|
||||||
|
ObSSTableIndexFilterFactory::destroy_sstable_index_filter(sstable_index_filter_);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ObTableIterParam::reset()
|
void ObTableIterParam::reset()
|
||||||
@ -79,7 +84,10 @@ void ObTableIterParam::reset()
|
|||||||
need_trans_info_ = false;
|
need_trans_info_ = false;
|
||||||
is_same_schema_column_ = false;
|
is_same_schema_column_ = false;
|
||||||
pd_storage_flag_ = 0;
|
pd_storage_flag_ = 0;
|
||||||
pushdown_filter_ = nullptr;
|
if (nullptr != pushdown_filter_) {
|
||||||
|
pushdown_filter_->clear();
|
||||||
|
pushdown_filter_ = nullptr;
|
||||||
|
}
|
||||||
ss_rowkey_prefix_cnt_ = 0;
|
ss_rowkey_prefix_cnt_ = 0;
|
||||||
op_ = nullptr;
|
op_ = nullptr;
|
||||||
output_exprs_ = nullptr;
|
output_exprs_ = nullptr;
|
||||||
|
|||||||
@ -1110,7 +1110,9 @@ int ObDictColumnDecoder::datum_dict_val_in_op(
|
|||||||
|
|
||||||
bool hit_shortcut = false;
|
bool hit_shortcut = false;
|
||||||
int cmp_ret = 0;
|
int cmp_ret = 0;
|
||||||
if (is_sorted_dict) {
|
if (filter.null_param_contained()) {
|
||||||
|
hit_shortcut = true;
|
||||||
|
} else if (is_sorted_dict) {
|
||||||
if (OB_FAIL(filter.cmp_func_(*min_it, filter.get_max_param(), cmp_ret))) {
|
if (OB_FAIL(filter.cmp_func_(*min_it, filter.get_max_param(), cmp_ret))) {
|
||||||
LOG_WARN("Failed to compare min dict value and max param", KR(ret), K(*min_it), K(filter.get_max_param()));
|
LOG_WARN("Failed to compare min dict value and max param", KR(ret), K(*min_it), K(filter.get_max_param()));
|
||||||
} else if (cmp_ret > 0) {
|
} else if (cmp_ret > 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user