boneanxs commented on PR #8015:
URL: https://github.com/apache/hudi/pull/8015#issuecomment-1441146491

   @stream2000  Hi, I'm quite confused with the behavior here, for 
`insert_overwrite_table` with `bulk_insert` enabled, we'll directly drop the 
data first, and then do the write operation, this breaks the ACID transactions, 
and the weird thing is this only happens when we enable `bulk_insert`.
   
   ```scala
   if (mode == SaveMode.Overwrite && tableExists && operation != 
WriteOperationType.INSERT_OVERWRITE_TABLE) {
           // When user set operation as INSERT_OVERWRITE_TABLE,
           // overwrite will use INSERT_OVERWRITE_TABLE operator in 
doWriteOperation
           log.warn(s"hoodie table at $tablePath already exists. Deleting 
existing data & overwriting with new data.")
           fs.delete(tablePath, true)
           tableExists = false
         }
   ```
   
   while for `insert_overwrite`, we don't support `bulk_insert`, and will keep 
the old files.
   
   I'm thinking we should firstly don't allow for `bulk_insert` for 
`insert_overwrite` and `insert_overwrite_table`, after we can fully support 
`bulk_insert` for `insert_overwrite` and `insert_overwrite_table`(while should 
also keep the overwritten data to keep the consistent behavior), then we can 
consider to have tests to cover this.
   
   cc @alexeykudinkin 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to