I created https://issues.apache.org/jira/browse/FLINK-9798

> On 18. May 2018, at 16:10, Till Rohrmann <trohrm...@apache.org> wrote:
> 
> +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