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]