| -- verify schema changes introduced in avro.schema.literal/url sync with HMS if ALTER TABLE UPDATE COLUMNS is called |
| |
| CREATE TABLE avro_extschema_literal_n1 |
| STORED AS AVRO |
| TBLPROPERTIES ('avro.schema.literal'='{ |
| "namespace": "org.apache.hive", |
| "name": "ext_schema", |
| "type": "record", |
| "fields": [ |
| { "name":"number", "type":"int" }, |
| { "name":"first_name", "type":"string" }, |
| { "name":"last_name", "type":"string" } |
| ] }'); |
| DESCRIBE avro_extschema_literal_n1; |
| |
| ALTER TABLE avro_extschema_literal_n1 SET |
| TBLPROPERTIES ('avro.schema.literal'='{ |
| "namespace": "org.apache.hive", |
| "name": "ext_schema", |
| "type": "record", |
| "fields": [ |
| { "name":"newCol", "type":"int" } |
| ] }'); |
| DESCRIBE avro_extschema_literal_n1; |
| |
| ALTER TABLE avro_extschema_literal_n1 UNSET TBLPROPERTIES ('avro.schema.literal'); |
| DESCRIBE avro_extschema_literal_n1; |
| |
| ALTER TABLE avro_extschema_literal_n1 SET |
| TBLPROPERTIES ('avro.schema.literal'='{ |
| "namespace": "org.apache.hive", |
| "name": "ext_schema", |
| "type": "record", |
| "fields": [ |
| { "name":"newCol", "type":"int" } |
| ] }'); |
| EXPLAIN ALTER TABLE avro_extschema_literal_n1 UPDATE COLUMNS CASCADE; |
| ALTER TABLE avro_extschema_literal_n1 UPDATE COLUMNS CASCADE; |
| DESCRIBE avro_extschema_literal_n1; |
| |
| ALTER TABLE avro_extschema_literal_n1 UNSET TBLPROPERTIES ('avro.schema.literal'); |
| DESCRIBE avro_extschema_literal_n1; |
| |
| dfs -cp ${system:hive.root}data/files/grad.avsc ${system:test.tmp.dir}/avro_alter_table_update_columns.avsc; |
| dfs -cp ${system:hive.root}data/files/grad2.avsc ${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc; |
| |
| |
| CREATE TABLE avro_extschema_url_n1 |
| STORED AS AVRO |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns.avsc'); |
| DESCRIBE avro_extschema_url_n1; |
| |
| ALTER TABLE avro_extschema_url_n1 SET |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc'); |
| DESCRIBE avro_extschema_url_n1; |
| |
| ALTER TABLE avro_extschema_url_n1 UNSET TBLPROPERTIES ('avro.schema.url'); |
| DESCRIBE avro_extschema_url_n1; |
| |
| |
| ALTER TABLE avro_extschema_url_n1 SET |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc'); |
| ALTER TABLE avro_extschema_url_n1 UPDATE COLUMNS CASCADE; |
| DESCRIBE avro_extschema_url_n1; |
| |
| ALTER TABLE avro_extschema_url_n1 UNSET TBLPROPERTIES ('avro.schema.url'); |
| DESCRIBE avro_extschema_url_n1; |
| |
| |
| |
| --testing partition level and non-cascade options |
| |
| CREATE TABLE avro_extschema_url_parted |
| PARTITIONED BY (p1 string, p2 string) |
| STORED AS AVRO |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns.avsc'); |
| ALTER TABLE avro_extschema_url_parted |
| ADD PARTITION (p1=2017, p2=11); |
| ALTER TABLE avro_extschema_url_parted |
| ADD PARTITION (p1=2018, p2=2); |
| ALTER TABLE avro_extschema_url_parted |
| ADD PARTITION (p1=2018, p2=3); |
| |
| DESCRIBE avro_extschema_url_parted; |
| |
| --case: partial partition spec |
| ALTER TABLE avro_extschema_url_parted SET |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc'); |
| EXPLAIN ALTER TABLE avro_extschema_url_parted PARTITION (p1=2018) UPDATE COLUMNS; |
| ALTER TABLE avro_extschema_url_parted PARTITION (p1=2018) UPDATE COLUMNS; |
| ALTER TABLE avro_extschema_url_parted UNSET TBLPROPERTIES ('avro.schema.url'); |
| |
| DESCRIBE avro_extschema_url_parted; |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2017, p2=11); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=2); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=3); |
| |
| --case: table with restrict (no cascade) |
| ALTER TABLE avro_extschema_url_parted SET |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc'); |
| ALTER TABLE avro_extschema_url_parted UPDATE COLUMNS; |
| ALTER TABLE avro_extschema_url_parted UNSET TBLPROPERTIES ('avro.schema.url'); |
| |
| DESCRIBE avro_extschema_url_parted; |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2017, p2=11); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=2); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=3); |
| |
| --case: full partition spec |
| ALTER TABLE avro_extschema_url_parted SET |
| TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc'); |
| ALTER TABLE avro_extschema_url_parted PARTITION (p1=2017, p2=11) UPDATE COLUMNS; |
| ALTER TABLE avro_extschema_url_parted UNSET TBLPROPERTIES ('avro.schema.url'); |
| |
| DESCRIBE avro_extschema_url_parted; |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2017, p2=11); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=2); |
| DESCRIBE avro_extschema_url_parted PARTITION (p1=2018, p2=3); |
| |
| dfs -rm ${system:test.tmp.dir}/avro_alter_table_update_columns.avsc; |
| dfs -rm ${system:test.tmp.dir}/avro_alter_table_update_columns2.avsc; |