| 514 | } |
| 515 | |
| 516 | bool ExecNode::CheckLimitAndTruncateRowBatchIfNeededShared( |
| 517 | RowBatch* row_batch, bool* eos) { |
| 518 | DCHECK(limit_ != 0); |
| 519 | const int row_batch_size = row_batch->num_rows(); |
| 520 | const bool reached_limit = |
| 521 | !(limit_ == -1 || (rows_returned_shared() + row_batch_size) < limit_); |
| 522 | const int num_rows_to_consume = |
| 523 | !reached_limit ? row_batch_size : limit_ - rows_returned_shared(); |
| 524 | IncrementNumRowsReturnedShared(num_rows_to_consume); |
| 525 | if (reached_limit) { |
| 526 | row_batch->set_num_rows(num_rows_to_consume); |
| 527 | *eos = true; |
| 528 | } |
| 529 | return reached_limit; |
| 530 | } |
| 531 | |
| 532 | Status ExecNode::QueryMaintenance(RuntimeState* state) { |
| 533 | expr_results_pool_->Clear(); |
nothing calls this directly
no test coverage detected