Details

    Description

      FLINK-34123 introduced built-in serialization support for java.util.List, which relies on the existing ListSerializer impl. However, ListSerializer does not allow null values, as it is originally designed for serializing ListState only where null value is explicitly forbidden in the contract.

      Directly adding null marker to allow null values will break backwards state compatibility, so we'll need to introduce a new List serializer called NullableElementListSerializer and the corrsponding TypeInformation called NullableElementListTypeInfo that allows null values for serializing user objects, and leaves the existing ListSerializer and ListTypeInfo for Flink's internal state use.

      FLINK-23420 is similar to our case here. We can extend ListSerializer to allow null values via  a binary mask for marking null values and rely on TypeSerializerSnapshot to deal with state-compatibility.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Zhanghao Chen Zhanghao Chen
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated: