Changeset: ac51ad5eca08 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ac51ad5eca08
Added Files:
        sql/test/BugConstraints/Tests/3335_check_no_error.test
        sql/test/BugConstraints/Tests/3568_check_not_enforced.test
        sql/test/BugConstraints/Tests/check_constraints.test
Modified Files:
        sql/test/BugConstraints/Tests/All
Branch: Aug2024
Log Message:

Adding tests for check contraints (for old issues 3335 and 3568)


diffs (165 lines):

diff --git a/sql/test/BugConstraints/Tests/3335_check_no_error.test 
b/sql/test/BugConstraints/Tests/3335_check_no_error.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugConstraints/Tests/3335_check_no_error.test
@@ -0,0 +1,35 @@
+statement ok
+create table ary(x integer check(x >0 and x <3))
+
+statement ok
+insert into ary values(1)
+
+statement error UPDATE: CHECK constraint violated: ary_x_check
+insert into ary values(0)
+
+statement ok
+insert into ary values(2)
+
+statement error UPDATE: CHECK constraint violated: ary_x_check
+insert into ary values(-1)
+
+statement error UPDATE: CHECK constraint violated: ary_x_check
+insert into ary values(3)
+
+statement error UPDATE: CHECK constraint violated: ary_x_check
+update ary set x = x+1
+
+statement ok
+delete from ary where x = 2
+
+statement ok
+update ary set x = x+1
+
+query I rowsort
+select * from ary
+----
+2
+
+statement ok
+drop table ary
+
diff --git a/sql/test/BugConstraints/Tests/3568_check_not_enforced.test 
b/sql/test/BugConstraints/Tests/3568_check_not_enforced.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugConstraints/Tests/3568_check_not_enforced.test
@@ -0,0 +1,52 @@
+statement ok
+CREATE TABLE TBLCHECK(nr int CHECK (nr > 10))
+
+statement ok
+INSERT INTO TBLCHECK VALUES (11)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (10)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (09)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (01)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (00)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (-01)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (-+02)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (+-+03)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (-+-04)
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+INSERT INTO TBLCHECK VALUES (+-+-05)
+
+query I rowsort
+SELECT * FROM TBLCHECK
+----
+11
+
+statement error 40002!UPDATE: CHECK constraint violated: tblcheck_nr_check
+UPDATE TBLCHECK SET nr = nr -10
+
+statement ok
+UPDATE TBLCHECK SET nr = nr +10
+
+query I rowsort
+SELECT * FROM TBLCHECK
+----
+21
+
+statement ok
+DROP TABLE TBLCHECK
+
diff --git a/sql/test/BugConstraints/Tests/All 
b/sql/test/BugConstraints/Tests/All
--- a/sql/test/BugConstraints/Tests/All
+++ b/sql/test/BugConstraints/Tests/All
@@ -3,3 +3,6 @@ delete_primarykey_1643845
 drop_column_1643542
 update_primarykey_1643375
 check_constraint.SF-1714829
+3568_check_not_enforced
+3335_check_no_error
+check_constraints
diff --git a/sql/test/BugConstraints/Tests/check_constraints.test 
b/sql/test/BugConstraints/Tests/check_constraints.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugConstraints/Tests/check_constraints.test
@@ -0,0 +1,53 @@
+statement ok
+create table kw(x integer primary key check(x >= 1), nm varchar(30) check (nm 
IS NOT NULL AND length(nm) >= 0), constraint kwname_upper check (nm = 
upper(nm)), constraint kwname_len_1 check (length(nm) > 0) )
+
+statement ok
+insert into kw values(1, 'FIRST')
+
+statement error UPDATE: CHECK constraint violated: kw_x_check
+insert into kw values(0, 'FIRST')
+
+statement eror UPDATE: CHECK constraint violated: kwname_upper
+insert into kw values(2, 'Second')
+
+statement ok
+insert into kw values(3, 'FREE')
+
+statement eror UPDATE: CHECK constraint violated: kwname_len_1
+insert into kw values(4, '')
+
+statement eror UPDATE: CHECK constraint violated: kw_nm_check
+insert into kw values(5, NULL)
+
+query IT rowsort
+select * from kw
+----
+1
+FIRST
+3
+FREE
+
+statement ok
+alter table kw drop constraint kw_x_check
+
+statement ok
+alter table kw drop constraint kw_nm_check
+
+statement ok
+alter table kw drop constraint kwname_upper
+
+statement ok
+alter table kw drop constraint kwname_len_1
+
+statement ok
+insert into kw values(2, 'Second')
+
+statement ok
+insert into kw values(4, '')
+
+statement ok
+insert into kw values(5, NULL)
+
+statement ok
+drop table kw
+
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to