From 3bff8a7867dc958190871cd0a81852ed5c28bb9d Mon Sep 17 00:00:00 2001 From: Zach Musgrave Date: Tue, 21 Jun 2022 09:30:03 -0700 Subject: [PATCH] Small bug fixes for schema methods with nil schemas --- go/libraries/doltcore/diff/diff_source.go | 10 +++++----- go/libraries/doltcore/schema/schema.go | 3 ++- .../doltcore/sqle/dtables/diff_iter.go | 2 +- .../sqle/enginetest/dolt_engine_test.go | 20 ++++++++++--------- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/go/libraries/doltcore/diff/diff_source.go b/go/libraries/doltcore/diff/diff_source.go index 276bd6e3ca..b2b480707c 100644 --- a/go/libraries/doltcore/diff/diff_source.go +++ b/go/libraries/doltcore/diff/diff_source.go @@ -49,11 +49,11 @@ type RowDiffSource struct { func NewRowDiffSource(ad RowDiffer, joiner *rowconv.Joiner, warnFn rowconv.WarnFunction) *RowDiffSource { return &RowDiffSource{ - ad, - joiner, - rowconv.IdentityConverter, - rowconv.IdentityConverter, - warnFn, + ad: ad, + joiner: joiner, + oldRowConv: rowconv.IdentityConverter, + newRowConv: rowconv.IdentityConverter, + warnFn: warnFn, } } diff --git a/go/libraries/doltcore/schema/schema.go b/go/libraries/doltcore/schema/schema.go index 88eb36832a..6432ddaf24 100644 --- a/go/libraries/doltcore/schema/schema.go +++ b/go/libraries/doltcore/schema/schema.go @@ -83,7 +83,8 @@ func ExtractAllColNames(sch Schema) (map[uint64]string, error) { } func IsKeyless(sch Schema) bool { - return sch.GetPKCols().Size() == 0 && + return sch != nil && + sch.GetPKCols().Size() == 0 && sch.GetAllCols().Size() != 0 } diff --git a/go/libraries/doltcore/sqle/dtables/diff_iter.go b/go/libraries/doltcore/sqle/dtables/diff_iter.go index b8c46b3423..e80f6fad6d 100644 --- a/go/libraries/doltcore/sqle/dtables/diff_iter.go +++ b/go/libraries/doltcore/sqle/dtables/diff_iter.go @@ -230,7 +230,7 @@ var _ sql.RowIter = prollyDiffIter{} // schema of |from| to |targetFromSchema| and the schema of |to| to // |targetToSchema|. See the tablediff_prolly package. func newProllyDiffIter(ctx *sql.Context, dp DiffPartition, ddb *doltdb.DoltDB, targetFromSchema, targetToSchema schema.Schema) (prollyDiffIter, error) { - if schema.IsKeyless(targetToSchema) { + if schema.IsKeyless(targetToSchema) || schema.IsKeyless(targetFromSchema) { return prollyDiffIter{}, errors.New("diffs with keyless schema have not been implemented yet") } diff --git a/go/libraries/doltcore/sqle/enginetest/dolt_engine_test.go b/go/libraries/doltcore/sqle/enginetest/dolt_engine_test.go index b49e724247..61b4156d8c 100644 --- a/go/libraries/doltcore/sqle/enginetest/dolt_engine_test.go +++ b/go/libraries/doltcore/sqle/enginetest/dolt_engine_test.go @@ -80,21 +80,23 @@ func TestSingleQuery(t *testing.T) { // Convenience test for debugging a single query. Unskip and set to the desired query. func TestSingleScript(t *testing.T) { - t.Skip() + // t.Skip() var scripts = []queries.ScriptTest{ { - Name: "table with commit column should maintain its data in diff", - SetUpScript: []string{ - "CREATE TABLE t (pk int PRIMARY KEY, commit text);", - "set @Commit1 = dolt_commit('-am', 'creating table t');", - "INSERT INTO t VALUES (1, 'hi');", - "set @Commit2 = dolt_commit('-am', 'insert data');", + Name: "new table", + SetUpScript: []string{ + "create table t1 (a int primary key, b int)", + "insert into t1 values (1,2)", }, Assertions: []queries.ScriptTestAssertion{ { - Query: "SELECT to_pk, to_commit, from_pk, from_commit, diff_type from dolt_diff('t', @Commit1, @Commit2);", - Expected: []sql.Row{{1, "hi", nil, nil, "added"}}, + Query: "select to_a, to_b, from_commit, to_commit, diff_type from dolt_diff('t1', 'HEAD', 'WORKING')", + Expected: []sql.Row{{1, 2, "HEAD", "WORKING", "added"}}, + }, + { + Query: "select from_a, from_b, from_commit, to_commit, diff_type from dolt_diff('t1', 'WORKING', 'HEAD')", + Expected: []sql.Row{{1, 2, "WORKING", "HEAD", "removed"}}, }, }, },