You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Ashutosh Chauhan (JIRA)" <ji...@apache.org> on 2013/03/03 04:15:13 UTC

[jira] [Commented] (HIVE-4007) Create abstract classes for serializer and deserializer

    [ https://issues.apache.org/jira/browse/HIVE-4007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13591614#comment-13591614 ] 

Ashutosh Chauhan commented on HIVE-4007:
----------------------------------------

Just so we are on same page, let me say how it ought to work:
We need not to remove Serde interface in medium term. In Hive codebase we still refer implementations everywhere by Serde (not by AbstractSerde).  This will let existing serde impl work without needing to change anything on their part. Than lets say we add new apis to AbstractSerde. Than in Hive codebase, using instanceof we can determine if Serde is of type AbstractSerde or not  and call those new apis, *only if* they do implement it. This way we can keep supporting old implementations without breaking them when we do add new apis in AbstractSerde. Ofcourse, we encourage everyone to start switching to AbstractSerde as soon as they can, so that we don't need to do ugly instanceof forever.
Do you agree with this approach?
 
                
> Create abstract classes for serializer and deserializer
> -------------------------------------------------------
>
>                 Key: HIVE-4007
>                 URL: https://issues.apache.org/jira/browse/HIVE-4007
>             Project: Hive
>          Issue Type: Improvement
>          Components: Serializers/Deserializers
>            Reporter: Namit Jain
>            Assignee: Namit Jain
>         Attachments: hive.4007.1.patch, hive.4007.2.patch, hive.4007.3.patch, hive.4007.4.patch
>
>
> Currently, it is very difficult to change the Serializer/Deserializer
> interface, since all the SerDes directly implement the interface.
> Instead, we should have abstract classes for implementing these interfaces.
> In case of a interface change, only the abstract class and the relevant 
> serde needs to change.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira