mirror of
https://github.com/dolthub/dolt.git
synced 2026-04-21 11:29:51 -05:00
Return a consistent table ordering for diffs
This commit is contained in:
@@ -523,16 +523,15 @@ func diffUserTables(ctx context.Context, dEnv *env.DoltEnv, dArgs *diffArgs) err
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
}
|
||||
|
||||
doltSchemasChanged := false
|
||||
for _, td := range tableDeltas {
|
||||
if !shouldPrintTableDelta(dArgs.tableSet, td) {
|
||||
continue
|
||||
}
|
||||
|
||||
if isDoltSchemasTable(td) {
|
||||
verr := diffDoltSchemasTable(sqlCtx, sqlEng, dArgs, dw)
|
||||
if verr != nil {
|
||||
return verr
|
||||
}
|
||||
// save dolt_schemas table diff for last in diff output
|
||||
doltSchemasChanged = true
|
||||
} else {
|
||||
verr := diffUserTable(sqlCtx, td, sqlEng, dArgs, dw)
|
||||
if verr != nil {
|
||||
@@ -541,6 +540,13 @@ func diffUserTables(ctx context.Context, dEnv *env.DoltEnv, dArgs *diffArgs) err
|
||||
}
|
||||
}
|
||||
|
||||
if doltSchemasChanged {
|
||||
verr := diffDoltSchemasTable(sqlCtx, sqlEng, dArgs, dw)
|
||||
if verr != nil {
|
||||
return verr
|
||||
}
|
||||
}
|
||||
|
||||
err = dw.Close(ctx)
|
||||
if err != nil {
|
||||
return errhand.VerboseErrorFromError(err)
|
||||
|
||||
@@ -271,28 +271,13 @@ func (t tabularDiffWriter) WriteTableSchemaDiff(ctx context.Context, toRoot *dol
|
||||
}
|
||||
|
||||
func (t tabularDiffWriter) WriteTriggerDiff(ctx context.Context, triggerName, oldDefn, newDefn string) error {
|
||||
var diffString string
|
||||
if newDefn == "" {
|
||||
diffString = "DROP TRIGGER " + sql.QuoteIdentifier(triggerName)
|
||||
} else if oldDefn == "" {
|
||||
diffString = oldDefn
|
||||
} else {
|
||||
diffString = textdiff.LineDiff(oldDefn, newDefn)
|
||||
}
|
||||
|
||||
diffString := textdiff.LineDiff(oldDefn, newDefn)
|
||||
cli.Println(diffString)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (t tabularDiffWriter) WriteViewDiff(ctx context.Context, viewName, oldDefn, newDefn string) error {
|
||||
var diffString string
|
||||
if newDefn == "" {
|
||||
diffString = "DROP VIEW " + sql.QuoteIdentifier(viewName)
|
||||
} else if oldDefn == "" {
|
||||
diffString = oldDefn
|
||||
} else {
|
||||
diffString = textdiff.LineDiff(oldDefn, newDefn)
|
||||
}
|
||||
diffString := textdiff.LineDiff(oldDefn, newDefn)
|
||||
cli.Println(diffString)
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -159,6 +159,14 @@ func GetTableDeltas(ctx context.Context, fromRoot, toRoot *doltdb.RootValue) (de
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Make sure we always return the same order of deltas
|
||||
sort.Slice(deltas, func(i, j int) bool {
|
||||
if deltas[i].FromName == deltas[j].FromName {
|
||||
return deltas[i].ToName < deltas[j].ToName
|
||||
}
|
||||
return deltas[i].FromName < deltas[j].FromName
|
||||
})
|
||||
|
||||
return deltas, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user