From 62c9addfd214d4da3cb333f692d2e39b29d0dacb Mon Sep 17 00:00:00 2001 From: elianddb Date: Thu, 12 Feb 2026 15:51:08 -0800 Subject: [PATCH] add backward compatibility test with older ver. --- .../sqle/enginetest/dolt_queries_merge.go | 11 +++--- integration-tests/compatibility/runner.sh | 4 +-- .../test_files/bats/compatibility.bats | 36 +++++++++++++++++++ .../test_files/bats/helper/common.bash | 9 +++++ 4 files changed, 53 insertions(+), 7 deletions(-) diff --git a/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go b/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go index abdeea568c..ebd34c8bd3 100644 --- a/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go +++ b/go/libraries/doltcore/sqle/enginetest/dolt_queries_merge.go @@ -4556,13 +4556,14 @@ var MergeArtifactsScripts = []queries.ScriptTest{ Query: "SELECT COUNT(*) FROM dolt_constraint_violations_t;", Expected: []sql.Row{{4}}, }, + // Omit violation_info from select so test passes under Doltgres (in-process returns Columns as []string, wire/protocol returns []interface{}). { - Query: "SELECT * FROM dolt_constraint_violations_t ORDER BY pk, CAST(violation_info AS CHAR);", + Query: "SELECT from_root_ish, violation_type, pk, a, b FROM dolt_constraint_violations_t ORDER BY pk, CAST(violation_info AS CHAR);", Expected: []sql.Row{ - {doltCommit, "unique index", 1, 0, 0, merge.UniqCVMeta{Name: "ua", Columns: []string{"a"}}}, - {doltCommit, "unique index", 1, 0, 0, merge.UniqCVMeta{Name: "ub", Columns: []string{"b"}}}, - {doltCommit, "unique index", 2, 0, 0, merge.UniqCVMeta{Name: "ua", Columns: []string{"a"}}}, - {doltCommit, "unique index", 2, 0, 0, merge.UniqCVMeta{Name: "ub", Columns: []string{"b"}}}, + {doltCommit, "unique index", 1, 0, 0}, + {doltCommit, "unique index", 1, 0, 0}, + {doltCommit, "unique index", 2, 0, 0}, + {doltCommit, "unique index", 2, 0, 0}, }, }, { diff --git a/integration-tests/compatibility/runner.sh b/integration-tests/compatibility/runner.sh index 042b475099..ec0b853212 100755 --- a/integration-tests/compatibility/runner.sh +++ b/integration-tests/compatibility/runner.sh @@ -65,7 +65,7 @@ function test_backward_compatibility() { PATH="`pwd`"/"$bin":"$PATH" setup_repo "$ver" echo "Run the bats tests with current Dolt version hitting repositories from older Dolt version $ver" - DEFAULT_BRANCH="$DEFAULT_BRANCH" REPO_DIR="`pwd`"/repos/"$ver" DOLT_VERSION="$ver" bats ./test_files/bats + DOLT_LEGACY_BIN="$(pwd)/$bin/dolt" DEFAULT_BRANCH="$DEFAULT_BRANCH" REPO_DIR="$(pwd)/repos/$ver" DOLT_VERSION="$ver" bats ./test_files/bats } function list_forward_compatible_versions() { @@ -146,7 +146,7 @@ _main() { # sanity check: run tests against current version echo "Run the bats tests using current Dolt version hitting repositories from the current Dolt version" - DEFAULT_BRANCH="$DEFAULT_BRANCH" REPO_DIR="`pwd`"/repos/HEAD bats ./test_files/bats + DEFAULT_BRANCH="$DEFAULT_BRANCH" REPO_DIR="$(pwd)/repos/HEAD" bats ./test_files/bats } _main diff --git a/integration-tests/compatibility/test_files/bats/compatibility.bats b/integration-tests/compatibility/test_files/bats/compatibility.bats index b63709b9c6..dd42434196 100755 --- a/integration-tests/compatibility/test_files/bats/compatibility.bats +++ b/integration-tests/compatibility/test_files/bats/compatibility.bats @@ -211,3 +211,39 @@ EOF run dolt merge check_merge [ "$status" -eq 0 ] } + +@test "constraint violation readable and resolvable by current build" { + [[ "$DOLT_VERSION" =~ 0\.50 ]] && skip "constraint violation test not run for Dolt version 0.50" + repo="$BATS_TEST_TMPDIR/cv_test_repo_$$" + mkdir -p "$repo" && cd "$repo" + old_dolt init + old_dolt sql <