mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-04 18:49:00 -06:00
try this?
This commit is contained in:
@@ -422,15 +422,24 @@ func mergeProllyTableData(ctx *sql.Context, tm *TableMerger, finalSch schema.Sch
|
||||
s := &MergeStats{
|
||||
Operation: TableModified,
|
||||
}
|
||||
var sec *secondaryMerger
|
||||
var conflicts *conflictMerger
|
||||
var leftIdxs, rightIdxs durable.IndexSet
|
||||
eg.Go(func() error {
|
||||
var err error
|
||||
var sec *secondaryMerger
|
||||
sec, conflicts, err = computeProllyTreePatches(errCtx, tm, finalSch, mergeTbl, valueMerger, mergeInfo, diffInfo, patchBuffer, s)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
leftIdxs, rightIdxs, err = sec.finalize(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
})
|
||||
|
||||
var mergedRoot *tree.Node
|
||||
var finalRows durable.Index
|
||||
// consume |patches| and apply them to |left|
|
||||
eg.Go(func() error {
|
||||
leftRowData, err := tm.leftTbl.GetRowData(errCtx)
|
||||
@@ -445,6 +454,12 @@ func mergeProllyTableData(ctx *sql.Context, tm *TableMerger, finalSch schema.Sch
|
||||
|
||||
serializer := message.NewProllyMapSerializer(mergedValDesc, ns.Pool())
|
||||
mergedRoot, err = tree.ApplyPatches(errCtx, ns, lIdx.Node(), mergedKeyDesc, serializer, patchBuffer)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
finalMap := prolly.NewMap(mergedRoot, ns, mergedKeyDesc, mergedValDesc)
|
||||
finalRows = durable.IndexFromProllyMap(finalMap)
|
||||
return err
|
||||
})
|
||||
|
||||
@@ -453,20 +468,12 @@ func mergeProllyTableData(ctx *sql.Context, tm *TableMerger, finalSch schema.Sch
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
finalMap := prolly.NewMap(mergedRoot, ns, mergedKeyDesc, mergedValDesc)
|
||||
finalRows := durable.IndexFromProllyMap(finalMap)
|
||||
|
||||
// After we've resolved all the diffs, it's safe for us to update the schema on the table
|
||||
mergeTbl, err = tm.leftTbl.UpdateSchema(ctx, finalSch)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
leftIdxs, rightIdxs, err := sec.finalize(ctx)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
finalIdxs, err := mergeProllySecondaryIndexes(ctx, tm, leftIdxs, rightIdxs, finalSch, finalRows, conflicts.ae, mergeInfo.InvalidateSecondaryIndexes)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
|
||||
Reference in New Issue
Block a user