[ https://issues.apache.org/jira/browse/HIVE-5823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14142801#comment-14142801 ]
Grisha Trubetskoy commented on HIVE-5823: ----------------------------------------- Just FYI this patch breaks schema evolution. If you look at this line: https://github.com/apache/hive/blob/2bb8ae7f352694f4becc9ff67e667620b2ee7fe9/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java#L269 {code} return worker(datum, fileSchema == null ? null : fileSchema.getTypes().get(tag), schema, SchemaToTypeInfo.generateTypeInfo(schema)); {code} The problem above is that if fileSchema has evolved from a primitive type to a union (quite common if you add a default, e.g. what used to be {{"type":"string"}} becomes {{"type":["null","string"], "default":null}}), then the {{getTypes()}} call above will throw a "not a union" exception. The correct logic should expect fileSchema to be either null or primitive type or a union. This appears to be fixed in the latest trunk (as part of HIVE-6806 patch, which isn't related to the DECIMAL type in any way): https://github.com/apache/hive/blob/trunk/serde/src/java/org/apache/hadoop/hive/serde2/avro/AvroDeserializer.java#L269 {code} Schema currentFileSchema = null; if (fileSchema != null) { currentFileSchema = fileSchema.getType() == Type.UNION ? fileSchema.getTypes().get(tag) : fileSchema; } return worker(datum, currentFileSchema, schema, SchemaToTypeInfo.generateTypeInfo(schema)); {code} > Support for DECIMAL primitive type in AvroSerDe > ----------------------------------------------- > > Key: HIVE-5823 > URL: https://issues.apache.org/jira/browse/HIVE-5823 > Project: Hive > Issue Type: New Feature > Components: Serializers/Deserializers > Affects Versions: 0.12.0 > Reporter: Mariano Dominguez > Assignee: Xuefu Zhang > Labels: TODOC14, avro, serde > Fix For: 0.14.0 > > Attachments: HIVE-5823.1.patch, HIVE-5823.2.patch, HIVE-5823.3.patch, > HIVE-5823.4.patch, HIVE-5823.5.patch, HIVE-5823.6.patch, HIVE-5823.7.patch, > HIVE-5823.patch, dec.avro > > > This new feature request would be tied to AVRO-1402. > Adding DECIMAL support would be particularly interesting when converting > types from Avro to Hive, since DECIMAL is already a supported data type in > Hive. -- This message was sent by Atlassian JIRA (v6.3.4#6332)