45556 {
45557 count = 0;
45558 ArrowAppender appender(scan_state.Types(), batch_size, std::move(options), std::move(extension_type_cast));
45559 const auto remaining_tuples_in_chunk = scan_state.RemainingInChunk();
45560 if (remaining_tuples_in_chunk) {
45561
45562 idx_t cur_consumption = MinValue(remaining_tuples_in_chunk, batch_size);
45563 count += cur_consumption;
45564 auto ¤t_chunk = scan_state.CurrentChunk();
45565 appender.Append(current_chunk, scan_state.CurrentOffset(), scan_state.CurrentOffset() + cur_consumption,
45566 current_chunk.size());
45567 scan_state.IncreaseOffset(cur_consumption);
45568 }
45569 while (count < batch_size) {
45570 if (!scan_state.LoadNextChunk(error)) {
45571 if (scan_state.HasError()) {
45572 error = scan_state.GetError();
45573 }
45574 return false;
45575 }
45576 if (scan_state.ChunkIsEmpty()) {
45577
45578 break;
45579 }
45580 auto ¤t_chunk = scan_state.CurrentChunk();
45581 if (scan_state.Finished() || current_chunk.size() == 0) {
45582 break;
45583 }
45584
45585 auto remaining = batch_size - count;
45586
45587
45588 auto to_append_to_batch = MinValue(remaining, scan_state.RemainingInChunk());
45589 appender.Append(current_chunk, 0, to_append_to_batch, current_chunk.size());
45590 count += to_append_to_batch;
45591 scan_state.IncreaseOffset(to_append_to_batch);
45592 }
45593 if (count > 0) {
45594 *out = appender.Finalize();
45595 }
45596 return true;
45597}
void error(int _code, const String &_err, const char *_func, const char *_file, int _line)