disable batch rescan for empty range conditions
This commit is contained in:
@ -974,6 +974,11 @@ int ObTableScanOp::build_bnlj_params()
|
||||
OZ(tsc_rtdef_.bnlj_params_.push_back(BNLJParamInfo(param_idx, array_obj)));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret) && tsc_rtdef_.bnlj_params_.empty()) {
|
||||
ret = OB_ERR_UNEXPECTED;
|
||||
LOG_WARN("batch param is empty in batch rescan", K(ret),
|
||||
K(MY_CTDEF.bnlj_param_idxs_), K(plan_ctx->get_param_store()));
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -1158,7 +1158,9 @@ int ObLogJoin::set_use_batch(ObLogicalOperator* root)
|
||||
} else if (root->is_table_scan()) {
|
||||
ObLogTableScan *ts = static_cast<ObLogTableScan*>(root);
|
||||
// dblink can not support batch nlj
|
||||
ts->set_use_batch(can_use_batch_nlj_);
|
||||
if (!ts->get_range_conditions().empty()) {
|
||||
ts->set_use_batch(can_use_batch_nlj_);
|
||||
}
|
||||
} else if (root->get_num_of_child() == 1) {
|
||||
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
||||
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
||||
|
@ -501,7 +501,9 @@ int ObLogSubPlanFilter::set_use_das_batch(ObLogicalOperator* root)
|
||||
LOG_WARN("invalid input", K(ret));
|
||||
} else if (root->is_table_scan()) {
|
||||
ObLogTableScan *ts = static_cast<ObLogTableScan*>(root);
|
||||
ts->set_use_batch(true);
|
||||
if (!ts->get_range_conditions().empty()) {
|
||||
ts->set_use_batch(true);
|
||||
}
|
||||
} else if (root->get_num_of_child() == 1) {
|
||||
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
||||
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
||||
|
Reference in New Issue
Block a user