-
-
Couldn't load subscription status.
- Fork 585
Description
Steps to reproduce:
git checkout nicktobey/schemamergetests
go test libraries/doltcore/merge/schema_merge_test.go -run "^\QTestSchemaMerge\E$/^\Qcolumn_add\E$/^\Qdrop_tests\E$/^\Qmerge_left_to_right\E$/^\Qleft_side_column_drop\E$/^\Qone_side_sets_to_non-NULL,_other_drops_non-NULL\E$"
In the test in question, the base of the merge has one value for a column (3), the left branch drops the column, and the right branch sets it to a different values (4). This should be a data conflict.
However, when the merge is performed, no data conflict is detected. The column is silently dropped. This happens because the function for attempting to auto-resolve data conflicts (and reporting when they can't be resolved) is merge.processColumn, which is called once for each column in the merged schema. If the column isn't present in the merged schema, processColumn doesn't get called for it. Any data merges in that column get ignored.