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)));
|
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;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -1158,7 +1158,9 @@ int ObLogJoin::set_use_batch(ObLogicalOperator* root)
|
|||||||
} else if (root->is_table_scan()) {
|
} else if (root->is_table_scan()) {
|
||||||
ObLogTableScan *ts = static_cast<ObLogTableScan*>(root);
|
ObLogTableScan *ts = static_cast<ObLogTableScan*>(root);
|
||||||
// dblink can not support batch nlj
|
// 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) {
|
} else if (root->get_num_of_child() == 1) {
|
||||||
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
||||||
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
||||||
|
@ -501,7 +501,9 @@ int ObLogSubPlanFilter::set_use_das_batch(ObLogicalOperator* root)
|
|||||||
LOG_WARN("invalid input", K(ret));
|
LOG_WARN("invalid input", K(ret));
|
||||||
} else if (root->is_table_scan()) {
|
} else if (root->is_table_scan()) {
|
||||||
ObLogTableScan *ts = static_cast<ObLogTableScan*>(root);
|
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) {
|
} else if (root->get_num_of_child() == 1) {
|
||||||
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
if (log_op_def::LOG_TABLE_LOOKUP == root->get_type()) {
|
||||||
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
ObLogTableLookup *tlu = static_cast<ObLogTableLookup*>(root);
|
||||||
|
Reference in New Issue
Block a user