fix fetch gi task failed bug
This commit is contained in:
@ -1159,8 +1159,9 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
|
||||
OZ(args.tablet_arrays_.push_back(pruning_remain_tablets));
|
||||
OZ(pump_->regenerate_gi_task());
|
||||
}
|
||||
args.set_finish_pruning();
|
||||
}
|
||||
args.set_pruning_ret(ret);
|
||||
args.set_finish_pruning();
|
||||
} else {
|
||||
while (OB_SUCC(ret) && !args.is_finish_pruning()) {
|
||||
if (OB_FAIL(ctx_.fast_check_status())) {
|
||||
@ -1169,7 +1170,8 @@ int ObGranuleIteratorOp::do_parallel_runtime_filter_pruning()
|
||||
ob_usleep(100);
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret) && args.sharing_iter_end_) {
|
||||
if (OB_SUCC(ret)
|
||||
&& (args.sharing_iter_end_ || OB_UNLIKELY(OB_SUCCESS != args.get_pruning_ret()))) {
|
||||
ret = OB_ITER_END;
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,6 +66,7 @@ public :
|
||||
cur_tablet_idx_(0), finish_pruning_tablet_idx_(0),
|
||||
sharing_iter_end_(false),
|
||||
pruning_status_(READY_PRUNING),
|
||||
pruning_ret_(OB_SUCCESS),
|
||||
partitions_info_(), parallelism_(0),
|
||||
tablet_size_(0), gi_attri_flag_(0) {}
|
||||
virtual ~ObGranulePumpArgs() { reset(); };
|
||||
@ -78,6 +79,8 @@ public :
|
||||
bool need_partition_granule();
|
||||
bool is_finish_pruning() { return pruning_status_ == FINISH_PRUNING; }
|
||||
void set_finish_pruning() { pruning_status_ = FINISH_PRUNING; }
|
||||
int get_pruning_ret() { return pruning_ret_; }
|
||||
void set_pruning_ret(int v) { pruning_ret_ = v; }
|
||||
void reset() {
|
||||
op_info_.reset();
|
||||
tablet_arrays_.reset();
|
||||
@ -95,6 +98,7 @@ public :
|
||||
int64_t finish_pruning_tablet_idx_;
|
||||
bool sharing_iter_end_;
|
||||
PruningStatus pruning_status_;
|
||||
int pruning_ret_;
|
||||
//-----end
|
||||
common::ObArray<ObPxTabletInfo> partitions_info_;
|
||||
common::ObArray<share::ObExternalFileInfo> external_table_files_;
|
||||
|
||||
Reference in New Issue
Block a user