hive-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Malak <michaelma...@yahoo.com>
Subject Re: NULLable STRUCTs
Date Tue, 19 Feb 2013 16:34:27 GMT
If no one has any objection, I'm going to update HIVE-4022, which I entered a week ago when
I thought the behavior was Avro-specific, to indicate it actually affects even native Hive
tables.

https://issues.apache.org/jira/browse/HIVE-4022

--- On Fri, 2/15/13, Michael Malak <michaelmalak@yahoo.com> wrote:

> From: Michael Malak <michaelmalak@yahoo.com>
> Subject: NULLable STRUCTs
> To: user@hive.apache.org
> Date: Friday, February 15, 2013, 5:03 PM
> It seems that all Hive columns (at
> least those of primitive types) are always NULLable? 
> What about columns of type STRUCT?
> 
> The following:
> 
> echo 1,2 >twovalues.csv
> hive
> CREATE TABLE tc (x INT, y INT) ROW FORMAT DELIMITED FIELDS
> TERMINATED BY ',';
> LOAD DATA LOCAL INPATH 'twovalues.csv' INTO TABLE tc;
> CREATE TABLE oc (z STRUCT<a: int, b: int>);
> INSERT INTO TABLE oc SELECT null FROM tc;
> 
> produces the error
> 
> FAILED: SemanticException [Error 10044]: Line 1:18 Cannot
> insert into target table because column number/types are
> different 'oc': Cannot convert column 0 from void to
> struct<a:int,b:int>.
> 
> I initially discovered such behavior with Avro-backed
> tables, and even entered a JIRA
> https://issues.apache.org/jira/browse/HIVE-4022
> but now I realized it happens with CSV-backed tables as
> well.
> 
> Perhaps related, perhaps not, it seems that all members of a
> STRUCT are always non-NULLable.  The following:
> 
> INSERT INTO TABLE oc SELECT named_struct('a', null, 'b',
> null) FROM tc;
> 
> produces the error:
> 
> FAILED: SemanticException [Error 10044]: Line 1:18 Cannot
> insert into target table because column number/types are
> different 'oc': Cannot convert column 0 from
> struct<a:void,b:void> to struct<a:int,b:int>.
> 
> 

Mime
View raw message