Hello,

I would like to add support for handling optional fields to the parquet::StreamReader and parquet::StreamWriter classes which I recently contributed (thank you!).

Ideally I would do this by using std::optional like this:

    parquet::StreamWriter writer{ parquet::ParquetFileWriter::Open(...) };

    std::optional<double> d;

    writer << d;

    ...

    parquet::StreamReader os{parquet::ParquetFileReader::Open(...)};

    reader >> d;

However std::optional is only available in C++17 and arrow is compiled in C++11 mode.

From what I see arrow does use Boost to a limited extent and in fact gandiva/cache.h uses the boost::optional class.

So would it be possible to use the boost::optional class in parquet?

Or perhaps someone can suggest another way of handling optional fields?

Thanks in advance for your help,

Gawain


Reply via email to