From 74bb15f4121cff56bb87cf86becc6388058f2339 Mon Sep 17 00:00:00 2001 From: Andy Arthur Date: Thu, 17 Dec 2020 13:01:12 -0800 Subject: [PATCH] fixed TableDelta.IsKeyless() --- bats/keyless.bats | 5 +---- go/cmd/dolt/commands/diff.go | 3 +++ go/libraries/doltcore/schema/schema.go | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/bats/keyless.bats b/bats/keyless.bats index f5b8c2cf5e..ba7b46f457 100644 --- a/bats/keyless.bats +++ b/bats/keyless.bats @@ -189,6 +189,7 @@ SQL run dolt --keyless sql -q " SELECT to_c0, to_c1, from_c0, from_c1 FROM dolt_diff_keyless + WHERE from_commit = hashof('HEAD') ORDER BY to_commit_date" -r csv [ $status -eq 0 ] [[ "${lines[0]}" = "to_c0,to_c1,from_c0,from_c1" ]] || false @@ -198,10 +199,6 @@ SQL [[ "${lines[4]}" = "1,9,," ]] || false [[ "${lines[5]}" = "1,9,," ]] || false [[ "${lines[6]}" = ",,0,0" ]] || false - [[ "${lines[7]}" = "1,1,," ]] || false - [[ "${lines[8]}" = "1,1,," ]] || false - [[ "${lines[9]}" = "0,0,," ]] || false - [[ "${lines[10]}" = "2,2,," ]] || false } @test "keyless diff column add/drop" { diff --git a/go/cmd/dolt/commands/diff.go b/go/cmd/dolt/commands/diff.go index 8f338681be..62dc5ed008 100644 --- a/go/cmd/dolt/commands/diff.go +++ b/go/cmd/dolt/commands/diff.go @@ -641,6 +641,9 @@ func diffRows(ctx context.Context, td diff.TableDelta, dArgs *diffArgs) errhand. if err != nil { return errhand.BuildDError("cannot retrieve schema for table %s", td.ToName).AddCause(err).Build() } + if td.IsAdd() { + fromSch = toSch + } fromRows, toRows, err := td.GetMaps(ctx) if err != nil { diff --git a/go/libraries/doltcore/schema/schema.go b/go/libraries/doltcore/schema/schema.go index 15e39648cb..6eeed26d62 100644 --- a/go/libraries/doltcore/schema/schema.go +++ b/go/libraries/doltcore/schema/schema.go @@ -55,7 +55,8 @@ func ExtractAllColNames(sch Schema) (map[uint64]string, error) { } func IsKeyless(sch Schema) bool { - return sch.GetPKCols().Size() == 0 + return sch.GetPKCols().Size() == 0 && + sch.GetAllCols().Size() != 0 } // TODO: this function never returns an error