There are tests that create a normal managed table and upgrade that table to a transactional table. For example, in test_acid.py, we run acid.test, which has:
create table upgraded_table (x int);
insert into upgraded_table values (1);
# Upgrade to the table to insert only acid when there are already values in it.
alter table upgraded_table set tblproperties
('transactional' = 'true', 'transactional_properties' = 'insert_only');
insert into upgraded_table values (2);
insert into upgraded_table values (3);
HIVE-22158, the create table is now translated to an external table, and this now fails with:
E ImpalaBeeswaxException: ImpalaBeeswaxException:
E INNER EXCEPTION: <class 'beeswaxd.ttypes.BeeswaxException'>
E MESSAGE: ImpalaRuntimeException: Error making 'alter_table' RPC to Hive Metastore:
E CAUSED BY: MetaException: test_acid_basic_5d04240b.upgraded_table cannot be declared transactional because it's an external table
If external tables can't be upgraded and all managed tables are now external, then this test case is invalid and can be removed. We should make sure that this is how it is supposed to work.