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.

Reply via email to