MCPcopy Create free account
hub / github.com/apache/arrow / InitAfterFirstBuffer

Method InitAfterFirstBuffer

cpp/src/arrow/csv/reader.cc:878–904  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

876
877 protected:
878 Future<> InitAfterFirstBuffer(const std::shared_ptr<Buffer>& first_buffer,
879 AsyncGenerator<std::shared_ptr<Buffer>> buffer_generator,
880 int max_readahead) {
881 if (first_buffer == nullptr) {
882 return Status::Invalid("Empty CSV file");
883 }
884
885 std::shared_ptr<Buffer> after_header;
886 ARROW_ASSIGN_OR_RAISE(auto header_bytes_consumed,
887 ProcessHeader(first_buffer, &after_header));
888 bytes_decoded_->fetch_add(header_bytes_consumed);
889
890 ARROW_ASSIGN_OR_RAISE(
891 auto decoder_op,
892 BlockDecodingOperator::Make(io_context_, convert_options_, conversion_schema_));
893
894 auto block_gen = SerialBlockReader::MakeAsyncIterator(
895 std::move(buffer_generator), MakeChunker(parse_options_), std::move(after_header),
896 read_options_.skip_rows_after_names);
897 auto parsed_block_gen = MakeMappedGenerator(std::move(block_gen), *parsing_operator_);
898 auto rb_gen = MakeMappedGenerator(std::move(parsed_block_gen), std::move(decoder_op));
899
900 auto self = shared_from_this();
901 return rb_gen().Then([self, rb_gen, max_readahead](const DecodedBlock& first_block) {
902 return self->InitFromBlock(first_block, std::move(rb_gen), max_readahead, 0);
903 });
904 }
905
906 Future<> InitFromBlock(const DecodedBlock& block,
907 AsyncGenerator<DecodedBlock> batch_gen, int max_readahead,

Callers 1

InitMethod · 0.95

Calls 5

InitFromBlockMethod · 0.95
MakeMappedGeneratorFunction · 0.85
ThenMethod · 0.80
MakeChunkerFunction · 0.70
InvalidFunction · 0.50

Tested by

no test coverage detected