blob: d9777130919625094d3da36a2876ed4a94863a75 [file] [log] [blame]
-- 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;