mirror of
https://github.com/dolthub/dolt.git
synced 2026-02-11 18:49:14 -06:00
Added update and bats tests for check constraints
This commit is contained in:
@@ -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))
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user