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

Method InitAfterFirstBuffer

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

Source from the content-addressed store, hash-verified

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