diff --git a/be/src/pipeline/exec/scan_operator.cpp b/be/src/pipeline/exec/scan_operator.cpp index a73e1a6db7ccb7..a7802f33e249db 100644 --- a/be/src/pipeline/exec/scan_operator.cpp +++ b/be/src/pipeline/exec/scan_operator.cpp @@ -1190,9 +1190,11 @@ Status ScanOperatorX::init(const TPlanNode& tnode, RuntimeState* // is checked in previous branch. if (query_options.enable_adaptive_pipeline_task_serial_read_on_limit) { DCHECK(query_options.__isset.adaptive_pipeline_task_serial_read_on_limit); - if (tnode.limit > 0 && - tnode.limit <= query_options.adaptive_pipeline_task_serial_read_on_limit) { - _should_run_serial = true; + if (!tnode.__isset.conjuncts || tnode.conjuncts.empty()) { + if (tnode.limit > 0 && + tnode.limit <= query_options.adaptive_pipeline_task_serial_read_on_limit) { + _should_run_serial = true; + } } } }