Fix FORWARD_NULL
This commit is contained in:
@ -1100,7 +1100,6 @@ int ObTenantCGReadInfoMgr::construct_normal_cg_read_infos()
|
||||
read_info_array = new(buf) ObCGReadInfo[array_cnt];
|
||||
basic_info_array = new((char *)buf + (sizeof(ObCGReadInfo) * array_cnt)) ObReadInfoStruct[array_cnt];
|
||||
alloc_buf_ = buf;
|
||||
}
|
||||
ObColExtend tmp_col_extend;
|
||||
tmp_col_extend.skip_index_attr_.set_min_max();
|
||||
int64_t idx = 0;
|
||||
@ -1125,6 +1124,7 @@ int ObTenantCGReadInfoMgr::construct_normal_cg_read_infos()
|
||||
} // end of for
|
||||
// if failed, will call destroy outside
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -491,6 +491,12 @@ int ObCOMergeBatchExeDag::create_first_task()
|
||||
LOG_WARN("execute task is unexpected null", KR(ret), KP(execute_task));
|
||||
} else if (OB_FAIL(create_task(execute_task/*parent*/, finish_task, *ctx, *dag_net))) {
|
||||
LOG_WARN("fail to create finish task", K(ret), KPC(dag_net));
|
||||
} else { // fill compaction param
|
||||
// the dag_net has been set, and the dag hasn't been added to the scheduler now
|
||||
param_.compaction_param_.sstable_cnt_ = ctx->get_tables_handle().get_count();
|
||||
param_.compaction_param_.estimate_concurrent_cnt_ = ctx->get_concurrent_cnt();
|
||||
param_.compaction_param_.add_time_ = common::ObTimeUtility::fast_current_time();
|
||||
param_.compaction_param_.batch_size_ = end_cg_idx_ - start_cg_idx_;
|
||||
}
|
||||
|
||||
if (OB_FAIL(ret)) {
|
||||
@ -500,17 +506,9 @@ int ObCOMergeBatchExeDag::create_first_task()
|
||||
}
|
||||
if (OB_NOT_NULL(finish_task)) {
|
||||
remove_task(*finish_task);
|
||||
execute_task = nullptr;
|
||||
finish_task = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
// the dag_net has been set, and the dag hasn't been added to the scheduler now
|
||||
if (OB_SUCC(ret)) { // fill compaction param
|
||||
param_.compaction_param_.sstable_cnt_ = ctx->get_tables_handle().get_count();
|
||||
param_.compaction_param_.estimate_concurrent_cnt_ = ctx->get_concurrent_cnt();
|
||||
param_.compaction_param_.add_time_ = common::ObTimeUtility::fast_current_time();
|
||||
param_.compaction_param_.batch_size_ = end_cg_idx_ - start_cg_idx_;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -942,8 +942,12 @@ int ObCOSSTableRowScanner::filter_group_by_rows()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
const ObCGBitmap *result_bitmap = nullptr;
|
||||
ObICGIterator *group_by_iter = nullptr;
|
||||
ObICGGroupByProcessor *group_by_processor = group_by_iters_.at(0);
|
||||
ObICGIterator *group_by_iter = dynamic_cast<ObICGIterator*>(group_by_processor);
|
||||
if (OB_ISNULL(group_by_iter = dynamic_cast<ObICGIterator*>(group_by_processor))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected null group_by_iter", K(ret), KPC(group_by_processor));
|
||||
} else {
|
||||
while(OB_SUCC(ret)) {
|
||||
if (can_forward_row_scanner() &&
|
||||
OB_FAIL(row_scanner_->forward_blockscan(end_, blockscan_state_, current_))) {
|
||||
@ -977,6 +981,7 @@ int ObCOSSTableRowScanner::filter_group_by_rows()
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret) && OB_FAIL(project_iter_->locate(
|
||||
ObCSRange(current_, group_size_),
|
||||
result_bitmap))) {
|
||||
@ -1135,20 +1140,21 @@ int ObCOSSTableRowScanner::init_group_by_info(ObTableAccessContext &context)
|
||||
int ObCOSSTableRowScanner::push_group_by_processor(ObICGIterator *cg_iterator)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
ObICGGroupByProcessor *group_by_processor = nullptr;
|
||||
if (OB_ISNULL(cg_iterator)) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
LOG_WARN("Invalid argument", K(ret));
|
||||
} else if (OB_UNLIKELY(!ObICGIterator::is_valid_group_by_cg_scanner(cg_iterator->get_type()))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected cg scanner", K(ret), K(cg_iterator->get_type()));
|
||||
} else {
|
||||
ObICGGroupByProcessor *group_by_processor = dynamic_cast<ObICGGroupByProcessor*>(cg_iterator);
|
||||
if (OB_FAIL(group_by_processor->init_group_by_info())) {
|
||||
} else if (OB_ISNULL(group_by_processor = dynamic_cast<ObICGGroupByProcessor*>(cg_iterator))) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected null group_by_processor", K(ret), KPC(cg_iterator));
|
||||
} else if (OB_FAIL(group_by_processor->init_group_by_info())) {
|
||||
LOG_WARN("Failed to init group by info", K(ret));
|
||||
} else if (OB_FAIL(group_by_iters_.push_back(group_by_processor))) {
|
||||
LOG_WARN("Failed to push back", K(ret));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -530,11 +530,16 @@ int ObCOSSTableRowsFilter::transform_filter_tree(
|
||||
LOG_WARN("Failed to pull up common node", K(ret), K(tmp_filter_indexes));
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (1 < tmp_filter_indexes.count() &&
|
||||
OB_FAIL(common_filter_executor->set_cg_param(*common_col_group_ids, common_col_exprs))) {
|
||||
if (1 < tmp_filter_indexes.count()) {
|
||||
if (OB_ISNULL(common_filter_executor)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected null common_filter_executor", K(ret));
|
||||
} else if (OB_FAIL(common_filter_executor->set_cg_param(*common_col_group_ids, common_col_exprs))) {
|
||||
LOG_WARN("Failed to set cg param to filter", K(ret), KPC(common_filter_executor),
|
||||
KP(common_col_group_ids), KP(common_col_exprs));
|
||||
} else {
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
++base_filter_idx;
|
||||
if (common_filter_executor == &filter || base_filter_idx >= filter.get_child_count()) {
|
||||
break;
|
||||
|
@ -91,6 +91,9 @@ int ObCOMerger::inner_prepare_merge(ObBasicTabletMergeCtx &ctx, const int64_t id
|
||||
}
|
||||
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_ISNULL(table)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
STORAGE_LOG(WARN, "Unexpected null table", K(ret));
|
||||
} else if (FALSE_IT(sstable = static_cast<ObSSTable *>(table))) {
|
||||
} else if (OB_FAIL(init_merge_iters(sstable))) {
|
||||
STORAGE_LOG(WARN, "failed to init_merge_iters", K(ret));
|
||||
|
@ -450,7 +450,6 @@ int ObCOSSTableV2::deep_copy(
|
||||
LOG_WARN("failed to deep copy co sstable", K(ret));
|
||||
} else {
|
||||
new_co_table = static_cast<ObCOSSTableV2 *>(meta_obj);
|
||||
}
|
||||
|
||||
// set cg sstable addr
|
||||
ObSSTableArray &new_cg_sstables = new_co_table->meta_->get_cg_sstables();
|
||||
@ -464,6 +463,7 @@ int ObCOSSTableV2::deep_copy(
|
||||
LOG_WARN("failed to set cg addr", K(ret));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (OB_SUCC(ret)) {
|
||||
dst = new_co_table;
|
||||
@ -526,6 +526,9 @@ int ObCOSSTableV2::get_cg_sstable(
|
||||
}
|
||||
|
||||
if (OB_FAIL(ret)) {
|
||||
} else if (OB_ISNULL(cg_wrapper.sstable_)) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("Unexpected null sstable", K(ret));
|
||||
} else if (cg_wrapper.sstable_->is_co_sstable()) {
|
||||
// do nothing
|
||||
} else if (cg_wrapper.sstable_->is_loaded()) {
|
||||
@ -598,7 +601,7 @@ int ObCOSSTableV2::scan(
|
||||
// TODO: check whether use row_store/rowkey sstable when primary keys accessed only
|
||||
ObStoreRowIterator *row_scanner = nullptr;
|
||||
ALLOCATE_TABLE_STORE_ROW_IETRATOR(context, ObCOSSTableRowScanner, row_scanner);
|
||||
if (OB_SUCC(ret) && OB_FAIL(row_scanner->init(param, context, this, &key_range))) {
|
||||
if (OB_SUCC(ret) && OB_NOT_NULL(row_scanner) && OB_FAIL(row_scanner->init(param, context, this, &key_range))) {
|
||||
LOG_WARN("Fail to open row scanner", K(ret), K(param), K(context), K(key_range), K(*this));
|
||||
}
|
||||
|
||||
@ -639,7 +642,7 @@ int ObCOSSTableV2::multi_scan(
|
||||
// TODO: check whether use row_store/rowkey sstable when primary keys accessed only
|
||||
ObStoreRowIterator *row_scanner = nullptr;
|
||||
ALLOCATE_TABLE_STORE_ROW_IETRATOR(context, ObCOSSTableRowMultiScanner, row_scanner);
|
||||
if (OB_SUCC(ret) && OB_FAIL(row_scanner->init(param, context, this, &ranges))) {
|
||||
if (OB_SUCC(ret) && OB_NOT_NULL(row_scanner) && OB_FAIL(row_scanner->init(param, context, this, &ranges))) {
|
||||
LOG_WARN("Fail to open row scanner", K(ret), K(param), K(context), K(ranges), K(*this));
|
||||
}
|
||||
|
||||
@ -746,7 +749,7 @@ int ObCOSSTableV2::get(
|
||||
} else {
|
||||
ObStoreRowIterator *row_getter = nullptr;
|
||||
ALLOCATE_TABLE_STORE_ROW_IETRATOR(context, ObCOSSTableRowGetter, row_getter);
|
||||
if (OB_SUCC(ret) && OB_FAIL(row_getter->init(param, context, this, &rowkey))) {
|
||||
if (OB_SUCC(ret) && OB_NOT_NULL(row_getter) && OB_FAIL(row_getter->init(param, context, this, &rowkey))) {
|
||||
LOG_WARN("Fail to open row scanner", K(ret), K(param), K(context), K(rowkey), K(*this));
|
||||
}
|
||||
|
||||
@ -786,7 +789,7 @@ int ObCOSSTableV2::multi_get(
|
||||
} else {
|
||||
ObStoreRowIterator *row_getter = nullptr;
|
||||
ALLOCATE_TABLE_STORE_ROW_IETRATOR(context, ObCOSSTableRowMultiGetter, row_getter);
|
||||
if (OB_SUCC(ret) && OB_FAIL(row_getter->init(param, context, this, &rowkeys))) {
|
||||
if (OB_SUCC(ret) && OB_NOT_NULL(row_getter) && OB_FAIL(row_getter->init(param, context, this, &rowkeys))) {
|
||||
LOG_WARN("Fail to open row scanner", K(ret), K(param), K(context), K(rowkeys), K(*this));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user