Hi
I have a question about how to reconcile the following hive two features going
forward:
* original files in MM tables (HIVE-19258, fixed in hive 3.1.0, 4.0.0)
* the separation of transactional tables from non transactional tables
(HIVE-22342, HIVE-22189, fixed in hive 4.0.0).
If I understand things correctly, original files come up when I start with a
non-transactional table, add data to it, then later alter that table to make it
transactional insert-ony.
The second feature makes it such that non-transactional tables are considered external
and are not allowed "within the managed warehouse root dir".
Wouldn't that make it such that a non-transactional table cannot be converted
into a mm table?
If that's the case, then you can't create original files, right?
what am I missing?
Gabriel Balan
P.S. I played around a bit in CDP7.0.3:
create table foo (a int) location '/a/b/c' tblproperties
("transactional"="false");
--ok
alter table foo set tblproperties ("transactional"="true",
"transactional_properties"="insert_only");
--Unable to alter table. default.foo cannot be declared transactional because
it's an external table
create table bar(a int) location '/a/b/d' tblproperties ("transactional"="true",
"transactional_properties"="insert_only");
--ok
insert into table bar values (123);
-- Unable to alter table. A managed table's location needs to be under the hive
warehouse root
alter table bar set tblproperties ("transactional"="false",
"transactional_properties"="--");
--Cannot convert an ACID table to non-ACID
--
The statements and opinions expressed here are my own and do not necessarily
represent those of Oracle Corporation.