Added update and bats tests for check constraints

This commit is contained in:
Zach Musgrave
2021-04-12 19:22:37 -07:00
parent 6c81b48324
commit 6084cacc14
2 changed files with 55 additions and 0 deletions

View File

@@ -227,6 +227,10 @@ func TestChecksOnInsert(t *testing.T) {
enginetest.TestChecksOnInsert(t, newDoltHarness(t))
}
func TestChecksOnUpdate(t *testing.T) {
enginetest.TestChecksOnUpdate(t, enginetest.NewDefaultMemoryHarness())
}
func TestTestDisallowedCheckConstraints(t *testing.T) {
enginetest.TestDisallowedCheckConstraints(t, newDoltHarness(t))
}

View File

@@ -1027,3 +1027,54 @@ SQL
[ "${#lines[@]}" -eq 2 ]
[[ "$output" =~ "tmp_br" ]] || false
}
@test "sql: check constraints" {
dolt sql <<SQL
CREATE table t1 (
a INTEGER PRIMARY KEY check (a > 3),
b INTEGER check (b > a)
);
SQL
dolt sql -q "insert into t1 values (5, 6)"
run dolt sql -q "insert into t1 values (3, 4)"
[ $status -eq 1 ]
[[ "$output" =~ "constraint" ]] || false
run dolt sql -q "insert into t1 values (4, 2)"
[ $status -eq 1 ]
[[ "$output" =~ "constraint" ]] || false
dolt sql <<SQL
CREATE table t2 (
a INTEGER PRIMARY KEY,
b INTEGER
);
ALTER TABLE t2 ADD CONSTRAINT chk1 CHECK (a > 3);
ALTER TABLE t2 ADD CONSTRAINT chk2 CHECK (b > a);
SQL
dolt sql -q "insert into t2 values (5, 6)"
run dolt sql -q "insert into t2 values (3, 4)"
[ $status -eq 1 ]
[[ "$output" =~ "constraint" ]] || false
run dolt sql -q "insert into t2 values (4, 2)"
[ $status -eq 1 ]
[[ "$output" =~ "constraint" ]] || false
dolt sql <<SQL
ALTER TABLE t2 DROP CONSTRAINT chk1;
ALTER TABLE t2 drop CONSTRAINT chk2;
SQL
dolt sql -q "insert into t2 values (3, 4)"
dolt sql -q "insert into t2 values (4, 2)"
# t1 should still have its constraints
run dolt sql -q "insert into t1 values (4, 2)"
[ $status -eq 1 ]
[[ "$output" =~ "constraint" ]] || false
}