[ 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.