You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Matt McCline (JIRA)" <ji...@apache.org> on 2016/06/02 20:56:59 UTC

[jira] [Commented] (HIVE-13865) Changing char column of orc table to string/var char drops white space.

    [ https://issues.apache.org/jira/browse/HIVE-13865?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15313041#comment-15313041 ] 

Matt McCline commented on HIVE-13865:
-------------------------------------

You can think of these situations as being like a CAST.

Let's say the old column char1 (type CHAR(50)) had its data type changed to STRING or VARCHAR(50).
Then changing the column data type is as if an implicit CAST has been added like:

CAST(char1 as STRING) or CAST(char1 as VARCHAR(50))

I think those casts drop trailing white space.

> Changing char column of orc table to string/var char drops white space. 
> ------------------------------------------------------------------------
>
>                 Key: HIVE-13865
>                 URL: https://issues.apache.org/jira/browse/HIVE-13865
>             Project: Hive
>          Issue Type: Bug
>    Affects Versions: 1.2.1
>            Reporter: Takahiko Saito
>            Assignee: Matt McCline
>
> Creating a orc table with char(16) column and insert some value with white space followed by characters:
> {noformat}
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> create table test (c char(16)) stored as orc;
> No rows affected (0.1 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> insert into table test values ('horton works     ');
> INFO  : Tez session hasn't been created yet. Opening session
> INFO  : Dag name: insert into table test values ('horton ...')(Stage-1)
> INFO  :
> INFO  : Status: Running (Executing on YARN cluster with App id application_1464222003837_0399)
> INFO  : Map 1: -/-
> INFO  : Map 1: 0/1
> INFO  : Map 1: 0/1
> INFO  : Map 1: 0/1
> INFO  : Map 1: 0(+1)/1
> INFO  : Map 1: 0(+1)/1
> INFO  : Map 1: 1/1
> INFO  : Loading data to table default.test from hdfs://os-r6-ifsmes-hiveserver2-11-5.openstacklocal:8020/apps/hive/warehouse/test/.hive-staging_hive_2016-05-26_17-43-07_098_2458959255563595485-1/-ext-10000
> INFO  : Table default.test stats: [numFiles=1, numRows=1, totalSize=267, rawDataSize=100]
> No rows affected (25.125 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> select * from test;
> +-------------------+--+
> |      test.c       |
> +-------------------+--+
> | horton works      |
> +-------------------+--+
> 1 row selected (0.077 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> describe test;
> +-----------+------------+----------+--+
> | col_name  | data_type  | comment  |
> +-----------+------------+----------+--+
> | c         | char(16)   |          |
> +-----------+------------+----------+--+
> 1 row selected (0.153 seconds)
> {noformat}
> Then after changing the column to string, the white space is lost:
> {noformat}
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> alter table test change column c c string;
> No rows affected (0.155 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> describe test;
> +-----------+------------+----------+--+
> | col_name  | data_type  | comment  |
> +-----------+------------+----------+--+
> | c         | string     |          |
> +-----------+------------+----------+--+
> 1 row selected (0.115 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> select * from test;
> +---------------+--+
> |    test.c     |
> +---------------+--+
> | horton works  |
> +---------------+--+
> 1 row selected (0.068 seconds)
> {noformat}
> The issue is not seen with textfile formatted table:
> {noformat}
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> create table test_text (c char(16)) stored as textfile;
> No rows affected (0.091 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> insert into table test_text values ('horton works     ');
> INFO  : Session is already open
> INFO  : Dag name: insert into table test_text values ('ho...')(Stage-1)
> INFO  :
> INFO  : Status: Running (Executing on YARN cluster with App id application_1464222003837_0399)
> INFO  : Map 1: 0/1
> INFO  : Map 1: 0(+1)/1
> INFO  : Map 1: 1/1
> INFO  : Loading data to table default.test_text from hdfs://os-r6-ifsmes-hiveserver2-11-5.openstacklocal:8020/apps/hive/warehouse/test_text/.hive-staging_hive_2016-05-26_17-45-29_669_2888061873550824337-1/-ext-10000
> INFO  : Table default.test_text stats: [numFiles=1, numRows=1, totalSize=17, rawDataSize=16]
> No rows affected (6.849 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> select * from test_text;
> +-------------------+--+
> |    test_text.c    |
> +-------------------+--+
> | horton works      |
> +-------------------+--+
> 1 row selected (0.098 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> describe test_text;
> +-----------+------------+----------+--+
> | col_name  | data_type  | comment  |
> +-----------+------------+----------+--+
> | c         | char(16)   |          |
> +-----------+------------+----------+--+
> 1 row selected (0.127 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> alter table test_text change column c c string;
> No rows affected (0.145 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> describe test_text;
> +-----------+------------+----------+--+
> | col_name  | data_type  | comment  |
> +-----------+------------+----------+--+
> | c         | string     |          |
> +-----------+------------+----------+--+
> 1 row selected (0.127 seconds)
> 0: jdbc:hive2://os-r6-ifsmes-hiveserver2-11-4> select * from test_text;
> +-------------------+--+
> |    test_text.c    |
> +-------------------+--+
> | horton works      |
> +-------------------+--+
> 1 row selected (0.066 seconds)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)