#pragma once #include "config_formats.h" #if USE_PARQUET #include namespace parquet::arrow { class FileReader; } namespace arrow { class Buffer; } namespace DB { class ParquetBlockInputFormat : public IInputFormat { public: ParquetBlockInputFormat(ReadBuffer & in_, Block header_); void resetParser() override; String getName() const override { return "ParquetBlockInputFormat"; } protected: Chunk generate() override; private: void prepareReader(); private: std::unique_ptr file_reader; int row_group_total = 0; // indices of columns to read from Parquet file std::vector column_indices; int row_group_current = 0; }; } #endif