+1

If we don't have a hierarchy of serializers then this method has no right
to exist.

Cheers,
Till

On Wed, May 16, 2018 at 11:06 AM, Timo Walther <twal...@apache.org> wrote:

> +1
>
> TypeInformation has too many methods that need to be implemented but
> provide little benefit for Flink.
>
> Am 16.05.18 um 10:55 schrieb Ted Yu:
>
> +1 from me as well.
>>
>> I checked a few serializer classes. The `equals` method on serializers
>> contains the logic of `canEqual` method whose existence seems redundant.
>>
>> On Wed, May 16, 2018 at 1:49 AM, Tzu-Li (Gordon) Tai <tzuli...@apache.org
>> >
>> wrote:
>>
>> +1.
>>>
>>> Looking at the implementations of the `canEqual` method in several
>>> serializers, it seems like all that is done is a check whether the object
>>> is of the same serializer class.
>>> We’ll have to be careful and double check all `equals` method on
>>> serializers that may have relied on the `canEqual` method to perform the
>>> preliminary type check.
>>> Otherwise, this sounds good.
>>>
>>> On 16 May 2018 at 4:35:47 PM, Stephan Ewen (se...@apache.org) wrote:
>>>
>>> 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
>>>
>>>
>

Reply via email to