Uploaded image for project: 'Flink'
  1. Flink
  2. FLINK-36200 Breaking changes for Flink 3.0
  3. FLINK-9798

Drop canEqual() from TypeInformation, TypeSerializer, etc.

    XMLWordPrintableJSON

Details

    Description

      See discussion from https://lists.apache.org/thread.html/7cc6cfd66e96e8d33c768629b55481b6c951c68128f10256abb328fe@%3Cdev.flink.apache.org%3E

      Hi all!

      As part of an attempt to simplify some code in the TypeInfo and
      TypeSerializer area, I would like to drop the "canEqual" methods for the
      following reason:

      "canEqual()" is necessary to make proper equality checks across hierarchies
      of types. This is for example useful in a collection API, stating for
      example whether a List can be equal to a Collection if they have the same
      contents. We don't have that here.

      A certain type information (and serializer) is equal to another one if they
      describe the same type, strictly. There is no necessity for cross hierarchy
      checks.

      This has also let to the situation that most type infos and serializers
      implement just a dummy/default version of "canEqual". Many "equals()"
      methods do not even call the other object's "canEqual", etc.

      As a first step, we could simply deprecate the method and implement an
      empty default, and remove all calls to that method.
      Best,
      Stephan

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              aljoscha Aljoscha Krettek
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: