[ https://issues.apache.org/jira/browse/HIVE-2941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13286682#comment-13286682 ]
Travis Crawford commented on HIVE-2941: --------------------------------------- Looking... In general running the Hive tests are a hassle because they take so long. I poked around a bit and found https://buildhive.cloudbees.com/ which can build github projects. Ideally I could post the patch and link to CI showing tests pass. > 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 > Attachments: HIVE-2941.D2721.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