Uploaded image for project: 'Apache Arrow'
  1. Apache Arrow
  2. ARROW-15618

[C++] Correctly handle Substrait nullability of types

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • C++

    Description

      In Substrait, nullability is associated with a type, whereas in Arrow it is associated with a field. Currently, DeserializeType ignores nullability for this reason, and SerializeType uses the (AFAICT) illegal NULLABILITY_UNSPECIFIED enum variant to do round-trip testing, and therefore this illegal variant is not rejected as it should.

      The correct solution IMO is to (de)serialize types to and from std::pair<std::shared_ptr<DataType>, bool> to explicitly expose this difference to the outside world. The internal FromProto and ToProto are functions already doing this.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jvanstraten Jeroen van Straten
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: