[ https://issues.apache.org/jira/browse/HIVE-2941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13290831#comment-13290831 ]
Hudson commented on HIVE-2941: ------------------------------ Integrated in Hive-trunk-h0.21 #1470 (See [https://builds.apache.org/job/Hive-trunk-h0.21/1470/]) HIVE-2941: Hive should expand nested structs when setting the table schema from thrift structs (Travis Crawford via Ashutosh Chauhan) (Revision 1347212) Result = FAILURE hashutosh : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1347212 Files : * /hive/trunk/ql/src/test/results/clientpositive/case_sensitivity.q.out * /hive/trunk/ql/src/test/results/clientpositive/input17.q.out * /hive/trunk/ql/src/test/results/clientpositive/input5.q.out * /hive/trunk/ql/src/test/results/clientpositive/input_testxpath.q.out * /hive/trunk/ql/src/test/results/clientpositive/input_testxpath2.q.out * /hive/trunk/ql/src/test/results/clientpositive/inputddl8.q.out * /hive/trunk/ql/src/test/results/clientpositive/join_thrift.q.out * /hive/trunk/serde/src/java/org/apache/hadoop/hive/serde2/objectinspector/ReflectionStructObjectInspector.java > Hive should expand nested structs when setting the table schema from thrift > structs > ----------------------------------------------------------------------------------- > > Key: HIVE-2941 > URL: https://issues.apache.org/jira/browse/HIVE-2941 > Project: Hive > Issue Type: Bug > Reporter: Travis Crawford > Assignee: Travis Crawford > Fix For: 0.10.0 > > Attachments: HIVE-2941.D2721.1.patch, HIVE-2941.D3513.1.patch > > > When setting a table serde, the deserializer is queried for its schema, which > is used to set the metastore table schema. The current implementation uses > the class name stored in the field as the field type. > By storing the class name as the field type, users cannot see the contents of > a struct with "describe tblname". Applications that query HiveMetaStore for > the table schema (specifically HCatalog in this case) see an unknown field > type, rather than a struct containing known field types. > Hive should store the expanded schema in the metastore so users browsing the > schema see expanded fields, and applications querying metastore see familiar > types. > DETAILS > Set the table serde to something like this. This serde uses the built-in > {{ThriftStructObjectInspector}}. > {code} > alter table foo_test > set serde "com.twitter.elephantbird.hive.serde.ThriftSerDe" > with serdeproperties ("serialization.class"="com.foo.Foo"); > {code} > This causes a call to {{MetaStoreUtils.getFieldsFromDeserializer}} which > returns a list of fields and their schemas. However, currently it does not > handle nested structs, and if {{com.foo.Foo}} above contains a field > {{com.foo.Bar}}, the class name {{com.foo.Bar}} would appear as the field > type. Instead, nested structs should be expanded. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira