Satish Mittal created HIVE-7892:
-----------------------------------

             Summary: Thrift Set type not working with Hive
                 Key: HIVE-7892
                 URL: https://issues.apache.org/jira/browse/HIVE-7892
             Project: Hive
          Issue Type: Bug
          Components: Serializers/Deserializers
            Reporter: Satish Mittal
            Assignee: Satish Mittal


Thrift supports List, Map and Struct complex types, which get mapped to Array, 
Map and Struct complex types in Hive respectively. However thrift Set type 
doesn't seem to be working. 

Here is an example thrift struct:
{noformat}
namespace java sample.thrift

struct setrow {
    1: required set<i32> ids,
    2: required string name,
}
{noformat}

A Hive table is created with ROW FORMAT SERDE 
'org.apache.hadoop.hive.serde2.thrift.ThriftDeserializer' WITH SERDEPROPERTIES 
('serialization.class'='sample.thrift.setrow', 
'serialization.format'='org.apache.thrift.protocol.TBinaryProtocol').

Describing the table shows:
{noformat}
hive> describe settable; 
OK
ids                     struct<>            from deserializer   
name                string                      from deserializer
{noformat}

Issuing a select query on set column throws SemanticException:
{noformat}
hive> select ids from settable;
FAILED: SemanticException java.lang.IllegalArgumentException: Error: name 
expected at the position 7 of 'struct<>' but '>' is found.
{noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to