[ 
https://issues.apache.org/jira/browse/HIVE-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Carl Steinbach updated HIVE-235:
--------------------------------

    Fix Version/s: 0.3.0

> DynamicSerDe does not work with Thrift Protocols that can have missing fields 
> for null values
> ---------------------------------------------------------------------------------------------
>
>                 Key: HIVE-235
>                 URL: https://issues.apache.org/jira/browse/HIVE-235
>             Project: Hadoop Hive
>          Issue Type: Bug
>          Components: Serializers/Deserializers
>            Reporter: Zheng Shao
>            Assignee: Zheng Shao
>            Priority: Blocker
>             Fix For: 0.3.0
>
>         Attachments: HIVE-235.1.patch, HIVE-235.2.patch
>
>
> The current DynamicSerDe code assumes all fields are there and no fields are 
> missing.
> However Thrift Protocols can have missing fields, in case the field is null.
> In that case, DynamicSerDe may commit 2 behavior:
> 1. array index out of bound error because DynamicSerDe assumes the number of 
> fields in the record should be equal to that in the DDL;
> 2. fields with null values will take the value from the last record. This may 
> produce wrong result for queries.
> In order to fix this, we need to:
> 1. Pass ObjectInspector/TypeInfo recursively so that we know the number of 
> fields when deserializing the record.
> 2. Clear out fields that are missing from the record.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to