Check status in co sstable row scanner
This commit is contained in:
@ -734,7 +734,13 @@ int ObMultipleMerge::process_fuse_row(const bool not_using_static_engine,
|
||||
LOG_WARN("Fail to fill virtual columns, ", K(ret));
|
||||
}
|
||||
if (OB_FAIL(ret) || need_skip) {
|
||||
} else{
|
||||
} else if (0 == (++scan_cnt_ % 10000) && !access_ctx_->query_flag_.is_daily_merge()) {
|
||||
// check if timeout or if transaction status every 10000 rows, which should be within 10ms
|
||||
if (OB_FAIL(THIS_WORKER.check_status())) {
|
||||
STORAGE_LOG(WARN, "query interrupt, ", K(ret));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)) {
|
||||
if (in_row.fast_filter_skipped_) {
|
||||
in_row.fast_filter_skipped_ = false;
|
||||
} else if (OB_FAIL(check_filtered(cur_row_, is_filter_filtered))) {
|
||||
@ -1080,14 +1086,7 @@ int ObMultipleMerge::fill_virtual_columns(ObDatumRow &row)
|
||||
int ObMultipleMerge::check_filtered(const ObDatumRow &row, bool &filtered)
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
// check if timeout or if transaction status every 10000 rows, which should be within 10ms
|
||||
if (0 == (++scan_cnt_ % 10000) && !access_ctx_->query_flag_.is_daily_merge()) {
|
||||
if (OB_FAIL(THIS_WORKER.check_status())) {
|
||||
STORAGE_LOG(WARN, "query interrupt, ", K(ret));
|
||||
}
|
||||
}
|
||||
if (OB_SUCC(ret)
|
||||
&& NULL != access_param_->op_filters_
|
||||
if (NULL != access_param_->op_filters_
|
||||
&& !access_param_->op_filters_->empty()) {
|
||||
// Execute filter in sql static typing engine.
|
||||
// %row is already projected to output expressions for main table scan.
|
||||
|
||||
@ -566,7 +566,9 @@ int ObCOSSTableRowScanner::filter_rows(BlockScanState &blockscan_state)
|
||||
if (iter_param_->has_lob_column_out()) {
|
||||
access_ctx_->reuse_lob_locator_helper();
|
||||
}
|
||||
if (nullptr != group_by_cell_) {
|
||||
if (OB_FAIL(THIS_WORKER.check_status())) {
|
||||
LOG_WARN("query interrupt", K(ret));
|
||||
} else if (nullptr != group_by_cell_) {
|
||||
ret = filter_group_by_rows();
|
||||
} else if (nullptr != access_ctx_->limit_param_) {
|
||||
ret = filter_rows_with_limit(blockscan_state);
|
||||
|
||||
Reference in New Issue
Block a user