From 56078dbeaedc5dcf950083bfacdf6dcd55f1f295 Mon Sep 17 00:00:00 2001 From: Jason Fulghum Date: Fri, 18 Feb 2022 14:51:39 -0800 Subject: [PATCH] Fixing a bug in sql_diff that caused malformed update statements to be returned. --- go/libraries/doltcore/diff/sql_diff.go | 28 ++++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/go/libraries/doltcore/diff/sql_diff.go b/go/libraries/doltcore/diff/sql_diff.go index af78cea379..27e541c40d 100644 --- a/go/libraries/doltcore/diff/sql_diff.go +++ b/go/libraries/doltcore/diff/sql_diff.go @@ -97,21 +97,23 @@ func (sds *SQLDiffSink) ProcRowWithProps(r row.Row, props pipeline.ReadableMap) case DiffModifiedOld: return nil case DiffModifiedNew: - // Pass in the update as a setStr - keys := make([]string, len(colDiffs)) + if len(colDiffs) > 0 { + // Pass in the update as a setStr + keys := make([]string, len(colDiffs)) - i := 0 - for k := range colDiffs { - keys[i] = k - i++ + i := 0 + for k := range colDiffs { + keys[i] = k + i++ + } + stmt, err := sqlfmt.RowAsUpdateStmt(r, sds.tableName, sds.sch, set.NewStrSet(keys)) + + if err != nil { + return err + } + + return iohelp.WriteLine(sds.wr, stmt) } - stmt, err := sqlfmt.RowAsUpdateStmt(r, sds.tableName, sds.sch, set.NewStrSet(keys)) - - if err != nil { - return err - } - - return iohelp.WriteLine(sds.wr, stmt) } // Treat the diff indicator string as a diff of the same type colDiffs[diffColName] = dt