I'm all for it. Created [1] it would also enable an operator[] for
arrays of primitive types [2].

[1] https://issues.apache.org/jira/browse/ARROW-7178
[2] https://issues.apache.org/jira/browse/ARROW-6276

On Fri, Nov 15, 2019 at 12:40 AM Micah Kornfield <emkornfi...@gmail.com> wrote:
>
> I think there are potentially other places in the Arrow code base that
> "optional" could be useful (e.g. a row-reader like class for Arrow
> Tables).  It looks like there is at least 1 header only optional library
> [1] that is c++17 forward compatible.  I think I would lean towards
> vendoring that or another header only library, instead of depending on
> boost (I would need to double check and seem to recall there being
> difference between boost and the standard one).
>
> [1] https://github.com/martinmoene/optional-lite
>
> On Thu, Nov 14, 2019 at 1:22 PM Gawain Bolton <gawain.bol...@free.fr> wrote:
>
> > 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