From d605791a6ddee6ff3d40719937cd8c244cec553e Mon Sep 17 00:00:00 2001 From: Daylon Wilkins Date: Thu, 7 Aug 2025 06:45:25 -0700 Subject: [PATCH] Fix table usage during merge --- go/libraries/doltcore/merge/merge_rows.go | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/go/libraries/doltcore/merge/merge_rows.go b/go/libraries/doltcore/merge/merge_rows.go index 87744a65d1c..541723afa9e 100644 --- a/go/libraries/doltcore/merge/merge_rows.go +++ b/go/libraries/doltcore/merge/merge_rows.go @@ -215,7 +215,7 @@ func (rm *RootMerger) MergeTable( // short-circuit here if we can finished, finishedRootObj, stats, err := rm.MaybeShortCircuit(ctx, tm, mergeOpts) - if finished != nil || stats != nil || err != nil { + if finished != nil || finishedRootObj != nil || stats != nil || err != nil { return &MergedResult{table: finished, rootObj: finishedRootObj}, stats, err } @@ -431,14 +431,18 @@ func (rm *RootMerger) MaybeShortCircuit(ctx context.Context, tm *TableMerger, op childHash = leftHash } if childHash != baseHash { - schemasEqual, err := doltdb.SchemaHashesEqual(ctx, childTable, tm.ancTbl) - if err != nil { - return nil, nil, nil, err - } - if schemasEqual || areRootObjs { - return nil, nil, nil, ErrTableDeletedAndModified + if areRootObjs { + return nil, nil, nil, nil } else { - return nil, nil, nil, ErrTableDeletedAndSchemaModified + schemasEqual, err := doltdb.SchemaHashesEqual(ctx, childTable, tm.ancTbl) + if err != nil { + return nil, nil, nil, err + } + if schemasEqual { + return nil, nil, nil, ErrTableDeletedAndModified + } else { + return nil, nil, nil, ErrTableDeletedAndSchemaModified + } } } // fast-forward