try this?

This commit is contained in:
James Cor
2026-01-29 13:59:40 -08:00
parent c1979715be
commit a85bc0e6ac

View File

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