Currently in order to define an ACID table, the following three conditions need to be satisfied:
- tblproperties ('transactional'='true')
- table has to be bucketed
- table format has to be stored as ORC
If any of the above condition doesn't hold, the table won't be ACID compliant, and query result against the table will be unexpected.
HIVE-12064 made sure that reverting tblproperties 'transactional' from 'true' to 'false' is not allowed. But changes for the other two conditions are still not restrained.
We need to make sure an ACID table cannot be un-bucketed, and cannot use other data format other than ORC.