rymurr commented on issue #1808:
URL: https://github.com/apache/iceberg/issues/1808#issuecomment-737864046


   
   > I'm also curious about what `MERGE` means. Is that like rebasing another 
branch's changes onto the current? If not rebase, what would happen?
   
   Thats correct, merge is probably closest to a fast forward rebase except 
history isn't re-written. If you had
   ```
    C    E
    |    |
    B    D
     \   /
       A
   ```
   Then merging the right branch into the left would give:
   ```
    E
    |
    D
    |
    C    E
    |    |
    B    D
     \   /
       A
   ```
   Merge always looks for a common ancestor and transplants commits across. It 
doesn't create a merge commit with multiple parents like git would. Nessie 
always keeps a linear history.
   
   If there is no common ancestor or there is a conflict the operation would 
fail (atomically). Currently the failure report is simply 'merge failed'. There 
is work on the server in flight to make the failure more clear and actionable. 
Currently conflict is defined at the table level and for iceberg is simply: 
'Table A on branch X has a different current snapshot than on branch Y'. It 
could be a really simple resolution (eg 2 appends) that could eventually be 
handled silently or something more complicated: conditional delete and schema 
change which drops a column from the conditional delete. Which would need more 
direct human intervention to resolve.
   


----------------------------------------------------------------
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.

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



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to