diff --git a/go/libraries/doltcore/sqle/dprocedures/dolt_merge.go b/go/libraries/doltcore/sqle/dprocedures/dolt_merge.go index bfb1d652df..5f098262db 100644 --- a/go/libraries/doltcore/sqle/dprocedures/dolt_merge.go +++ b/go/libraries/doltcore/sqle/dprocedures/dolt_merge.go @@ -92,6 +92,10 @@ func doDoltMerge(ctx *sql.Context, args []string) (string, int, int, error) { return "", noConflictsOrViolations, threeWayMerge, err } + if len(args) == 0 { + return "", noConflictsOrViolations, threeWayMerge, errors.New("error: Please specify a branch to merge") + } + if apr.ContainsAll(cli.SquashParam, cli.NoFFParam) { return "", noConflictsOrViolations, threeWayMerge, fmt.Errorf("error: Flags '--%s' and '--%s' cannot be used together.\n", cli.SquashParam, cli.NoFFParam) } @@ -151,7 +155,7 @@ func doDoltMerge(ctx *sql.Context, args []string) (string, int, int, error) { ws, commit, conflicts, fastForward, err := performMerge(ctx, sess, roots, ws, dbName, mergeSpec, apr.Contains(cli.NoCommitFlag), msg) if err != nil || conflicts != 0 || fastForward != 0 { - return "", conflicts, fastForward, err + return commit, conflicts, fastForward, err } return commit, conflicts, fastForward, nil @@ -214,6 +218,9 @@ func performMerge(ctx *sql.Context, sess *dsess.DoltSession, roots doltdb.Roots, } ws, err = executeFFMerge(ctx, dbName, spec.Squash, ws, dbData, spec.MergeC) + if h, cerr := spec.MergeC.HashOf(); cerr == nil { + return ws, h.String(), noConflictsOrViolations, fastForwardMerge, err + } return ws, "", noConflictsOrViolations, fastForwardMerge, err } @@ -245,15 +252,16 @@ func performMerge(ctx *sql.Context, sess *dsess.DoltSession, roots doltdb.Roots, return ws, "", noConflictsOrViolations, threeWayMerge, err } + var commit string if !noCommit { author := fmt.Sprintf("%s <%s>", spec.Name, spec.Email) - commit, _, err := doDoltCommit(ctx, []string{"-m", msg, "--author", author}) + commit, _, err = doDoltCommit(ctx, []string{"-m", msg, "--author", author}) if err != nil { return ws, commit, noConflictsOrViolations, threeWayMerge, fmt.Errorf("dolt_commit failed") } } - return ws, "", noConflictsOrViolations, threeWayMerge, nil + return ws, commit, noConflictsOrViolations, threeWayMerge, nil } func abortMerge(ctx *sql.Context, workingSet *doltdb.WorkingSet, roots doltdb.Roots) (*doltdb.WorkingSet, error) { diff --git a/go/libraries/doltcore/sqle/enginetest/dolt_queries.go b/go/libraries/doltcore/sqle/enginetest/dolt_queries.go index c36e2ac5cf..e0332fe76a 100644 --- a/go/libraries/doltcore/sqle/enginetest/dolt_queries.go +++ b/go/libraries/doltcore/sqle/enginetest/dolt_queries.go @@ -3599,12 +3599,12 @@ var DoltTagTestScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.OkResult{RowsAffected: 2}}}, }, { - Query: "CALL DOLT_COMMIT('-am','made changes in other')", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-am','made changes in other')", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_MERGE('v1')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * FROM test", @@ -3715,8 +3715,8 @@ var DoltAutoIncrementTests = []queries.ScriptTest{ Expected: []sql.Row{{types.OkResult{RowsAffected: 2, InsertID: 1}}}, }, { - Query: "call dolt_commit('-am', 'two values on main')", - SkipResultsCheck: true, + Query: "call dolt_commit('-am', 'two values on main')", + Expected: []sql.Row{{doltCommit}}, }, { Query: "call dolt_checkout('branch1')", @@ -3734,8 +3734,8 @@ var DoltAutoIncrementTests = []queries.ScriptTest{ }, }, { - Query: "call dolt_commit('-am', 'two values on branch1')", - SkipResultsCheck: true, + Query: "call dolt_commit('-am', 'two values on branch1')", + Expected: []sql.Row{{doltCommit}}, }, { Query: "call dolt_checkout('branch2')", @@ -4233,8 +4233,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ }, Assertions: []queries.ScriptTestAssertion{ { - Query: "CALL dolt_merge('--no-ff', 'branch1');", - SkipResultsCheck: true, // TODO: how do i predict the hash + Query: "CALL dolt_merge('--no-ff', 'branch1');", + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "CALL dolt_cherry_pick('HEAD');", @@ -4307,16 +4307,16 @@ var DoltCherryPickTests = []queries.ScriptTest{ Expected: []sql.Row{}, }, { - Query: "call dolt_cherry_pick(@commit2);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit2);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SELECT * FROM t;", Expected: []sql.Row{{2, "two"}}, }, { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SELECT * FROM t order by pk;", @@ -4341,8 +4341,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ Expected: []sql.Row{}, }, { - Query: "CALL DOLT_CHERRY_PICK('branch1');", - SkipResultsCheck: true, + Query: "CALL DOLT_CHERRY_PICK('branch1');", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SELECT * FROM keyless;", @@ -4366,8 +4366,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ Expected: []sql.Row{{"myview"}}, }, { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SHOW TABLES;", @@ -4397,8 +4397,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ Expected: []sql.Row{{"myview"}, {"dropme"}}, }, { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SHOW TABLES;", @@ -4419,8 +4419,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ }, Assertions: []queries.ScriptTestAssertion{ { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SHOW CREATE TABLE test;", @@ -4441,8 +4441,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ }, Assertions: []queries.ScriptTestAssertion{ { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SHOW CREATE TABLE test;", @@ -4463,8 +4463,8 @@ var DoltCherryPickTests = []queries.ScriptTest{ }, Assertions: []queries.ScriptTestAssertion{ { - Query: "call dolt_cherry_pick(@commit1);", - SkipResultsCheck: true, + Query: "call dolt_cherry_pick(@commit1);", + Expected: []sql.Row{{doltCommit, 0, 0, 0}}, }, { Query: "SHOW CREATE TABLE test;", @@ -4747,8 +4747,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-ALL', '-m', 'update table terminator');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-ALL', '-m', 'update table terminator');", + Expected: []sql.Row{{doltCommit}}, }, // check last commit { @@ -4757,8 +4757,8 @@ var DoltCommitTests = []queries.ScriptTest{ }, // amend last commit { - Query: "CALL DOLT_COMMIT('-amend', '-m', 'update table t');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-amend', '-m', 'update table t');", + Expected: []sql.Row{{doltCommit}}, }, // check amended commit { @@ -4783,8 +4783,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(0)}}, }, { - Query: "CALL DOLT_COMMIT('-Am', 'drop table t');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-Am', 'drop table t');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_RESET('--hard');", @@ -4800,13 +4800,13 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(0)}}, }, { - Query: "CALL DOLT_COMMIT('-Am', 'add table 21');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-Am', 'add table 21');", + Expected: []sql.Row{{doltCommit}}, }, // amend last commit { - Query: "CALL DOLT_COMMIT('-amend', '-m', 'add table 2');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-amend', '-m', 'add table 2');", + Expected: []sql.Row{{doltCommit}}, }, // check amended commit { @@ -4868,8 +4868,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{2, nil, "added"}}, }, { - Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit message');", - SkipResultsCheck: true, // commit hash is being returned, skip check + Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit message');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SELECT message FROM dolt_log;", @@ -4937,8 +4937,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{0}}, }, { - Query: "CALL DOLT_COMMIT('--amend');", - SkipResultsCheck: true, // commit hash is being returned, skip check + Query: "CALL DOLT_COMMIT('--amend');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SELECT message FROM dolt_log;", @@ -4975,8 +4975,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{0}}, }, { - Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with added changes');", - SkipResultsCheck: true, // commit hash is being returned, skip check + Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with added changes');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SELECT COUNT(*) FROM dolt_status;", @@ -5041,8 +5041,8 @@ var DoltCommitTests = []queries.ScriptTest{ Expected: []sql.Row{{0}}, }, { - Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with removed changes');", - SkipResultsCheck: true, // commit hash is being returned, skip check + Query: "CALL DOLT_COMMIT('--amend', '-m', 'amended commit with removed changes');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SELECT * FROM test;", @@ -5100,8 +5100,8 @@ var DoltCommitTests = []queries.ScriptTest{ }, Assertions: []queries.ScriptTestAssertion{ { - Query: "CALL DOLT_COMMIT('--amend', '-m', 'new merge');", - SkipResultsCheck: true, // commit hash is being returned, skip check + Query: "CALL DOLT_COMMIT('--amend', '-m', 'new merge');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SELECT message FROM dolt_log;", diff --git a/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go b/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go index eba5490cd3..5444484fa5 100644 --- a/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go +++ b/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go @@ -15,8 +15,10 @@ package enginetest import ( + "regexp" "strings" + "github.com/dolthub/go-mysql-server/enginetest" "github.com/dolthub/go-mysql-server/enginetest/queries" "github.com/dolthub/go-mysql-server/sql" "github.com/dolthub/go-mysql-server/sql/plan" @@ -49,6 +51,21 @@ type MergeScriptTest struct { SkipPrepared bool } +type doltCommitValidator struct{} + +var _ enginetest.CustomValueValidator = &doltCommitValidator{} +var hashRegex = regexp.MustCompile(`^[0-9a-v]{32}$`) + +func (dcv *doltCommitValidator) Validate(val interface{}) (bool, error) { + hash, ok := val.(string) + if !ok { + return false, nil + } + return hashRegex.MatchString(hash), nil +} + +var doltCommit = &doltCommitValidator{} + var MergeScripts = []queries.ScriptTest{ { Name: "CALL DOLT_MERGE ff correctly works with autocommit off", @@ -69,7 +86,7 @@ var MergeScripts = []queries.ScriptTest{ { // FF-Merge Query: "CALL DOLT_MERGE('feature-branch')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -109,7 +126,7 @@ var MergeScripts = []queries.ScriptTest{ { // FF-Merge Query: "CALL DOLT_MERGE('feature-branch')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -167,8 +184,8 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { // No-FF-Merge - Query: "CALL DOLT_MERGE('feature-branch', '--no-ff', '-m', 'this is a no-ff')", - SkipResultsCheck: true, + Query: "CALL DOLT_MERGE('feature-branch', '--no-ff', '-m', 'this is a no-ff')", + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -210,8 +227,8 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { // No-FF-Merge - Query: "CALL DOLT_MERGE('feature-branch', '--no-ff', '-m', 'this is a no-ff')", - SkipResultsCheck: true, + Query: "CALL DOLT_MERGE('feature-branch', '--no-ff', '-m', 'this is a no-ff')", + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -256,7 +273,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature-branch', '-m', 'this is a merge', '--commit')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -428,7 +445,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature-branch', '--squash')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "SELECT count(*) from dolt_status", @@ -461,7 +478,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature-branch', '--squash')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "CALL DOLT_CHECKOUT('-b', 'other')", @@ -494,7 +511,7 @@ var MergeScripts = []queries.ScriptTest{ { // FF-Merge Query: "CALL DOLT_MERGE('feature-branch')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -532,7 +549,7 @@ var MergeScripts = []queries.ScriptTest{ { // FF-Merge Query: "CALL DOLT_MERGE('feature-branch')", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -588,8 +605,8 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { // No-FF-Merge - Query: "CALL DOLT_MERGE('feature-branch', '-no-ff', '-m', 'this is a no-ff')", - SkipResultsCheck: true, + Query: "CALL DOLT_MERGE('feature-branch', '-no-ff', '-m', 'this is a no-ff')", + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT is_merging, source, target, unmerged_tables FROM DOLT_MERGE_STATUS;", @@ -635,7 +652,7 @@ var MergeScripts = []queries.ScriptTest{ }, { Query: "CALL DOLT_MERGE('feature-branch', '-m', 'this is a merge')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT COUNT(*) from dolt_status", @@ -674,7 +691,7 @@ var MergeScripts = []queries.ScriptTest{ }, { Query: "CALL DOLT_MERGE('feature-branch', '-m', 'this is a merge')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT COUNT(*) from dolt_status", @@ -931,7 +948,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('b1')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select count(*) from dolt_conflicts", @@ -1171,7 +1188,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * from t;", @@ -1221,7 +1238,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('other');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * from t;", @@ -1283,7 +1300,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('other');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select count(*) from dolt_schemas where type = 'trigger';", @@ -1306,7 +1323,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL dolt_merge('test');", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "INSERT INTO t VALUES (NULL,5),(6,6),(NULL,7);", @@ -1343,7 +1360,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL dolt_merge('test');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "INSERT INTO t VALUES (NULL,6),(7,7),(NULL,8);", @@ -1378,7 +1395,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL dolt_merge('test');", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "INSERT INTO t VALUES (3,3),(NULL,6);", @@ -1414,7 +1431,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL dolt_merge('test');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "INSERT INTO t VALUES (3,3),(NULL,7);", @@ -1453,7 +1470,7 @@ var MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * FROM t;", @@ -1482,7 +1499,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('other');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t", @@ -1512,7 +1529,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ }, { Query: "CALL DOLT_MERGE('other');", - Expected: []sql.Row{{"", 1, 0}}, + Expected: []sql.Row{{doltCommit, 1, 0}}, }, { Query: "select * from t", @@ -1541,7 +1558,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('other');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t", @@ -1567,7 +1584,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select y from xyz where y >= 0", @@ -1597,7 +1614,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select y from xyz where y >= 0", @@ -1629,7 +1646,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select y from xyz where y >= 0 order by 1", @@ -1659,7 +1676,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('feature');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select y from xyz where y >= 0 order by 1", @@ -1907,7 +1924,7 @@ var Dolt1MergeScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('other')", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * from dolt_constraint_violations_t", @@ -2804,8 +2821,8 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Expected: []sql.Row{}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'commit active merge');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'commit active merge');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "SET FOREIGN_KEY_CHECKS=0;", @@ -2816,8 +2833,8 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.OkResult{RowsAffected: 2, InsertID: 0, Info: plan.UpdateInfo{Matched: 2, Updated: 2}}}}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'update children to new value');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'update children to new value');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_MERGE('other3');", @@ -2873,8 +2890,8 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Expected: []sql.Row{{uint64(merge.CvType_UniqueIndex), 1, 1}, {uint64(merge.CvType_UniqueIndex), 2, 1}}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'commit unique key viol');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'commit unique key viol');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('right');", @@ -2893,8 +2910,8 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Expected: []sql.Row{{uint64(merge.CvType_UniqueIndex), 3, 1}, {uint64(merge.CvType_UniqueIndex), 4, 1}}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'commit unique key viol');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'commit unique key viol');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('main');", @@ -2939,7 +2956,7 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "CALL DOLT_MERGE('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "SELECT * from t;", @@ -3023,7 +3040,7 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select count(*) from dolt_constraint_violations;", @@ -3313,8 +3330,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-am', 'delete parent 1');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-am', 'delete parent 1');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('branch1');", @@ -3325,8 +3342,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-am', 'insert child of parent 1');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-am', 'insert child of parent 1');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('main');", @@ -3349,8 +3366,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ ExpectedErrStr: "error: the table(s) child have constraint violations", }, { - Query: "CALL DOLT_COMMIT('-afm', 'commit constraint violations');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'commit constraint violations');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_BRANCH('branch3');", @@ -3361,8 +3378,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'remove parent 2');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'remove parent 2');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('branch2');", @@ -3373,8 +3390,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-am', 'non-fk insert');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-am', 'non-fk insert');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('main');", @@ -3397,8 +3414,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ ExpectedErrStr: "error: the table(s) child have constraint violations", }, { - Query: "CALL DOLT_COMMIT('-afm', 'commit non-conflicting merge');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'commit non-conflicting merge');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('branch3');", @@ -3409,8 +3426,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ Expected: []sql.Row{{types.NewOkResult(1)}}, }, { - Query: "CALL DOLT_COMMIT('-afm', 'add child of parent 2');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'add child of parent 2');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_CHECKOUT('main');", @@ -3475,8 +3492,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ }, // commit so we can merge again { - Query: "CALL DOLT_COMMIT('-afm', 'committing merge conflicts');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'committing merge conflicts');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_MERGE('other2');", @@ -3549,8 +3566,8 @@ var OldFormatMergeConflictsAndCVsScripts = []queries.ScriptTest{ }, // commit so we can merge again { - Query: "CALL DOLT_COMMIT('-afm', 'committing merge conflicts');", - SkipResultsCheck: true, + Query: "CALL DOLT_COMMIT('-afm', 'committing merge conflicts');", + Expected: []sql.Row{{doltCommit}}, }, { Query: "CALL DOLT_MERGE('other2');", @@ -4149,7 +4166,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select pk, col2 from t;", @@ -4177,7 +4194,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4212,7 +4229,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select pk, col11, col2 from t;", @@ -4246,7 +4263,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select pk, col1, col2 from t;", @@ -4276,7 +4293,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4301,7 +4318,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4326,7 +4343,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4351,7 +4368,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4379,7 +4396,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4405,7 +4422,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select pk, col1, col2 from t;", @@ -4441,7 +4458,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { // NOTE: If we can't find an exact tag mapping, then we fall back to @@ -4478,7 +4495,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4547,7 +4564,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from parent;", @@ -4653,7 +4670,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4681,7 +4698,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", @@ -4771,7 +4788,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, }, }, @@ -4813,7 +4830,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, }, }, @@ -4917,7 +4934,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t order by pk;", @@ -5201,7 +5218,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ // See the comment above about why this should NOT report a conflict and why this is skipped Skip: true, Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Skip: true, @@ -5228,7 +5245,7 @@ var ThreeWayMergeWithSchemaChangeTestScripts = []MergeScriptTest{ Assertions: []queries.ScriptTestAssertion{ { Query: "call dolt_merge('right');", - Expected: []sql.Row{{"", 0, 0}}, + Expected: []sql.Row{{doltCommit, 0, 0}}, }, { Query: "select * from t;", diff --git a/integration-tests/mysql-client-tests/java/MySQLConnectorTest.java b/integration-tests/mysql-client-tests/java/MySQLConnectorTest.java index 515b664d4e..ae1b736217 100644 --- a/integration-tests/mysql-client-tests/java/MySQLConnectorTest.java +++ b/integration-tests/mysql-client-tests/java/MySQLConnectorTest.java @@ -8,85 +8,82 @@ public class MySQLConnectorTest { public static void main(String[] args) { Connection conn = null; - String user = args[0]; - String port = args[1]; - String db = args[2]; + String user = args[0]; + String port = args[1]; + String db = args[2]; try { String url = "jdbc:mysql://127.0.0.1:" + port + "/" + db; - - String password = ""; + String password = ""; conn = DriverManager.getConnection(url, user, password); - Statement st = conn.createStatement(); + Statement st = conn.createStatement(); - String[] queries = { - "create table test (pk int, `value` int, primary key(pk))", - "describe test", - "select * from test", - "insert into test (pk, `value`) values (0,0)", - "select * from test", - "call dolt_add('-A')", - "call dolt_commit('-m', 'my commit')", - "select COUNT(*) FROM dolt_log", - "call dolt_checkout('-b', 'mybranch')", - "insert into test (pk, `value`) values (1,1)", - "call dolt_commit('-a', '-m', 'my commit2')", - "call dolt_checkout('main')", - "call dolt_merge('mybranch')", - "select COUNT(*) FROM dolt_log", - }; + String[] queries = { + "create table test (pk int, `value` int, primary key(pk))", + "describe test", + "select * from test", + "insert into test (pk, `value`) values (0,0)", + "select * from test", + "call dolt_add('-A')", + "call dolt_commit('-m', 'my commit')", + "select COUNT(*) FROM dolt_log", + "call dolt_checkout('-b', 'mybranch')", + "insert into test (pk, `value`) values (1,1)", + "call dolt_commit('-a', '-m', 'my commit2')", + "call dolt_checkout('main')", + "call dolt_merge('mybranch')", + "select COUNT(*) FROM dolt_log", + }; - // Only test the first row, column pair for now - String[] results = { - "0", - "pk", - null, - "1", - "0", - "0", - "0", - "2", - "0", - "1", - "1", - "0", - "", - "3" - }; - - for (int i = 0; i < queries.length; i++) { - String query = queries[i]; - String expected = results[i]; - if ( st.execute(query) ) { - ResultSet rs = st.getResultSet(); - if (rs.next()) { - String result = rs.getString(1); - if (!expected.equals(result) && !(query.contains("dolt_commit"))) { - System.out.println("Query: \n" + query); - System.out.println("Expected:\n" + expected); - System.out.println("Result:\n" + result); - System.exit(1); - } - } - } else { - String result = Integer.toString(st.getUpdateCount()); - if ( !expected.equals(result) ) { - System.out.println("Query: \n" + query); - System.out.println("Expected:\n" + expected); - System.out.println("Rows Updated:\n" + result); - System.exit(1); - } - } - } - - System.exit(0); + // Only test the first row, column pair for now + String[] results = { + "0", + "pk", + null, + "1", + "0", + "0", + "0", + "2", + "0", + "1", + "1", + "0", + "", + "3" + }; + for (int i = 0; i < queries.length; i++) { + String query = queries[i]; + String expected = results[i]; + if ( st.execute(query) ) { + ResultSet rs = st.getResultSet(); + if (rs.next()) { + String result = rs.getString(1); + if (!expected.equals(result) && !(query.contains("dolt_commit")) && !(query.contains("dolt_merge"))) { + System.out.println("Query: \n" + query); + System.out.println("Expected:\n" + expected); + System.out.println("Result:\n" + result); + System.exit(1); + } + } + } else { + String result = Integer.toString(st.getUpdateCount()); + if ( !expected.equals(result) ) { + System.out.println("Query: \n" + query); + System.out.println("Expected:\n" + expected); + System.out.println("Rows Updated:\n" + result); + System.exit(1); + } + } + } + System.exit(0); } catch (SQLException ex) { System.out.println("An error occurred."); ex.printStackTrace(); - System.exit(1); + System.exit(1); } } } diff --git a/integration-tests/mysql-client-tests/python/mysql.connector-test.py b/integration-tests/mysql-client-tests/python/mysql.connector-test.py index 7a04d957b2..a51b651b4d 100644 --- a/integration-tests/mysql-client-tests/python/mysql.connector-test.py +++ b/integration-tests/mysql-client-tests/python/mysql.connector-test.py @@ -47,7 +47,7 @@ def main(): results = cursor.fetchall() print(exp_results) print(results) - if (results != exp_results) and ("dolt_commit" not in query): + if (results != exp_results) and ("dolt_commit" not in query) and ("dolt_merge" not in query): print("Query:") print(query) print("Expected:") diff --git a/integration-tests/mysql-client-tests/python/pymysql-test.py b/integration-tests/mysql-client-tests/python/pymysql-test.py index 6a65d52184..0fb18cc7c2 100644 --- a/integration-tests/mysql-client-tests/python/pymysql-test.py +++ b/integration-tests/mysql-client-tests/python/pymysql-test.py @@ -37,7 +37,7 @@ def main(): with connection.cursor() as cursor: cursor.execute(query) results = cursor.fetchall() - if (results != exp_results) and ("dolt_commit" not in query): + if (results != exp_results) and ("dolt_commit" not in query) and ("dolt_merge" not in query): print("Query:") print(query) print("Expected:") diff --git a/integration-tests/mysql-client-tests/python/sqlalchemy-test.py b/integration-tests/mysql-client-tests/python/sqlalchemy-test.py index fe1bd142f1..96ca793346 100644 --- a/integration-tests/mysql-client-tests/python/sqlalchemy-test.py +++ b/integration-tests/mysql-client-tests/python/sqlalchemy-test.py @@ -47,7 +47,7 @@ def main(): try: results = result_proxy.fetchall() - if (results != exp_results) and ("dolt_commit" not in query): + if (results != exp_results) and ("dolt_commit" not in query) and ("dolt_merge" not in query): print("Query:") print(query) print("Expected:")