You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Zheng Shao (JIRA)" <ji...@apache.org> on 2009/02/02 04:25:59 UTC
[jira] Resolved: (HIVE-235) DynamicSerDe does not work with Thrift
Protocols that can have missing fields for null values
[ https://issues.apache.org/jira/browse/HIVE-235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Zheng Shao resolved HIVE-235.
-----------------------------
Resolution: Fixed
Release Note:
HIVE-235. Fixed DynamicSerDe to work with null values with Thrift Protocols that can have missing fields for null values. (zshao)
Hadoop Flags: [Reviewed]
Committed revision 736092.
> 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
> 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.