return commit hash for dolt_merge() when --no-ff is not specified (#6281)

This commit is contained in:
James Cor
2023-07-10 02:12:01 -07:00
committed by GitHub
parent 106799fe00
commit ea9839f524
7 changed files with 220 additions and 198 deletions

View File

@@ -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) {

View File

@@ -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;",

View File

@@ -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;",

View File

@@ -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);
}
}
}

View File

@@ -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:")

View File

@@ -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:")

View File

@@ -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:")