| --! qt:dataset:srcbucket |
| --! qt:dataset:part |
| --! qt:dataset:alltypesorc |
| set hive.explain.user=false; |
| set hive.fetch.task.conversion=none; |
| set hive.mapred.mode=nonstrict; |
| set hive.cli.print.header=true; |
| set hive.support.concurrency=true; |
| set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; |
| set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat; |
| SET hive.exec.schema.evolution=false; |
| SET hive.vectorized.use.vectorized.input.format=true; |
| SET hive.vectorized.use.vector.serde.deserialize=false; |
| SET hive.vectorized.use.row.serde.deserialize=false; |
| SET hive.vectorized.execution.enabled=false; |
| set hive.metastore.disallow.incompatible.col.type.changes=true; |
| set hive.default.fileformat=orc; |
| set hive.llap.io.enabled=false; |
| |
| -- SORT_QUERY_RESULTS |
| -- |
| -- FILE VARIATION: ORC, ACID Non-Vectorized, MapWork, Partitioned |
| -- *IMPORTANT NOTE* We set hive.exec.schema.evolution=false above since schema evolution is always used for ACID. |
| -- Also, we don't do EXPLAINs on ACID files because the write id causes Q file statistics differences... |
| -- |
| |
| CREATE TABLE schema_evolution_data_n34(insert_num int, boolean1 boolean, tinyint1 tinyint, smallint1 smallint, int1 int, bigint1 bigint, decimal1 decimal(38,18), float1 float, double1 double, string1 string, string2 string, date1 date, timestamp1 timestamp, boolean_str string, tinyint_str string, smallint_str string, int_str string, bigint_str string, decimal_str string, float_str string, double_str string, date_str string, timestamp_str string, filler string) |
| row format delimited fields terminated by '|' stored as textfile; |
| load data local inpath '../../data/files/schema_evolution/schema_evolution_data.txt' overwrite into table schema_evolution_data_n34; |
| |
| CREATE TABLE schema_evolution_data_2_n10(insert_num int, boolean1 boolean, tinyint1 tinyint, smallint1 smallint, int1 int, bigint1 bigint, decimal1 decimal(38,18), float1 float, double1 double, string1 string, string2 string, date1 date, timestamp1 timestamp, boolean_str string, tinyint_str string, smallint_str string, int_str string, bigint_str string, decimal_str string, float_str string, double_str string, date_str string, timestamp_str string, filler string) |
| row format delimited fields terminated by '|' stored as textfile; |
| load data local inpath '../../data/files/schema_evolution/schema_evolution_data_2.txt' overwrite into table schema_evolution_data_2_n10; |
| |
| -- |
| -- |
| -- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... UPDATE New Columns |
| --- |
| CREATE TABLE partitioned_update_1_n1(insert_num int, a INT, b STRING) PARTITIONED BY(part INT) clustered by (a) into 2 buckets STORED AS ORC TBLPROPERTIES ('transactional'='true'); |
| |
| insert into table partitioned_update_1_n1 partition(part=1) SELECT insert_num, int1, 'original' FROM schema_evolution_data_n34; |
| |
| -- Table-Non-Cascade ADD COLUMNS ... |
| alter table partitioned_update_1_n1 add columns(c int, d string); |
| |
| insert into table partitioned_update_1_n1 partition(part=2) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num <=110; |
| |
| insert into table partitioned_update_1_n1 partition(part=1) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num > 110; |
| |
| select insert_num,part,a,b,c,d from partitioned_update_1_n1; |
| |
| -- UPDATE New Columns |
| update partitioned_update_1_n1 set c=99; |
| |
| select insert_num,part,a,b,c,d from partitioned_update_1_n1; |
| |
| alter table partitioned_update_1_n1 partition(part=1) compact 'major'; |
| alter table partitioned_update_1_n1 partition(part=2) compact 'major'; |
| |
| select insert_num,part,a,b,c,d from partitioned_update_1_n1; |
| |
| DROP TABLE partitioned_update_1_n1; |
| |
| -- |
| -- |
| -- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DELETE where old column |
| --- |
| CREATE TABLE partitioned_delete_1_n1(insert_num int, a INT, b STRING) PARTITIONED BY(part INT) clustered by (a) into 2 buckets STORED AS ORC TBLPROPERTIES ('transactional'='true'); |
| |
| insert into table partitioned_delete_1_n1 partition(part=1) SELECT insert_num, int1, 'original' FROM schema_evolution_data_n34; |
| |
| -- Table-Non-Cascade ADD COLUMNS ... |
| alter table partitioned_delete_1_n1 add columns(c int, d string); |
| |
| insert into table partitioned_delete_1_n1 partition(part=2) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num <=110; |
| |
| insert into table partitioned_delete_1_n1 partition(part=1) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num > 110; |
| |
| select part,a,b,c,d from partitioned_delete_1_n1; |
| |
| -- DELETE where old column |
| delete from partitioned_delete_1_n1 where insert_num = 102 or insert_num = 104 or insert_num = 106; |
| |
| select insert_num,part,a,b,c,d from partitioned_delete_1_n1; |
| |
| alter table partitioned_delete_1_n1 partition(part=1) compact 'major'; |
| alter table partitioned_delete_1_n1 partition(part=2) compact 'major'; |
| |
| select insert_num,part,a,b,c,d from partitioned_delete_1_n1; |
| |
| DROP TABLE partitioned_delete_1_n1; |
| |
| -- |
| -- |
| -- SECTION VARIATION: ALTER TABLE ADD COLUMNS ... DELETE where new column |
| --- |
| CREATE TABLE partitioned_delete_2_n1(insert_num int, a INT, b STRING) PARTITIONED BY(part INT) clustered by (a) into 2 buckets STORED AS ORC TBLPROPERTIES ('transactional'='true'); |
| |
| insert into table partitioned_delete_2_n1 partition(part=1) SELECT insert_num, int1, 'original' FROM schema_evolution_data_n34; |
| |
| -- Table-Non-Cascade ADD COLUMNS ... |
| alter table partitioned_delete_2_n1 add columns(c int, d string); |
| |
| insert into table partitioned_delete_2_n1 partition(part=2) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num <=110; |
| |
| insert into table partitioned_delete_2_n1 partition(part=1) SELECT insert_num, int1, 'new', int1, string1 FROM schema_evolution_data_2_n10 WHERE insert_num > 110; |
| |
| select insert_num,part,a,b,c,d from partitioned_delete_2_n1; |
| |
| -- DELETE where new column |
| delete from partitioned_delete_2_n1 where insert_num = 108 or insert_num > 113; |
| |
| select insert_num,part,a,b,c,d from partitioned_delete_2_n1; |
| |
| alter table partitioned_delete_2_n1 partition(part=1) compact 'major'; |
| alter table partitioned_delete_2_n1 partition(part=2) compact 'major'; |
| |
| select insert_num,part,a,b,c,d from partitioned_delete_2_n1; |
| |
| DROP TABLE partitioned_delete_2_n1; |
| |
| --following tests is moved from system tests |
| drop table if exists missing_ddl_2_n0; |
| create table missing_ddl_2_n0(name string, age int); |
| insert overwrite table missing_ddl_2_n0 select value, key from srcbucket; |
| alter table missing_ddl_2_n0 add columns (gps double); |
| |
| DROP TABLE IF EXISTS all100kjson_textfile_orc_n0; |
| CREATE TABLE all100kjson_textfile_orc_n0 ( |
| si smallint, |
| i int, |
| b bigint, |
| f float, |
| d double, |
| s string, |
| bo boolean, |
| ts timestamp) |
| PARTITIONED BY (t tinyint) |
| ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe' |
| WITH SERDEPROPERTIES ('timestamp.formats'='yyyy-MM-dd\'T\'HH:mm:ss') |
| STORED AS TEXTFILE; |
| |
| INSERT INTO TABLE all100kjson_textfile_orc_n0 PARTITION (t) SELECT csmallint, cint, cbigint, cfloat, cdouble, cstring1, cboolean1, ctimestamp1, ctinyint FROM alltypesorc WHERE ctinyint > 0; |
| |
| ALTER TABLE all100kjson_textfile_orc_n0 |
| SET FILEFORMAT |
| INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' |
| OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' |
| SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde'; |
| |
| INSERT INTO TABLE all100kjson_textfile_orc_n0 PARTITION (t) SELECT csmallint, cint, cbigint, cfloat, cdouble, cstring1, cboolean1, ctimestamp1, ctinyint FROM alltypesorc WHERE ctinyint < 1 and ctinyint > -50 ; |
| |
| -- HIVE-11977: Hive should handle an external avro table with zero length files present |
| DROP TABLE IF EXISTS emptyavro_n1; |
| CREATE TABLE emptyavro_n1 (i int) |
| PARTITIONED BY (s string) |
| STORED AS AVRO; |
| load data local inpath '../../data/files/empty1.txt' into table emptyavro_n1 PARTITION (s='something'); |
| SELECT COUNT(*) from emptyavro_n1; |