Add regression tests to verify that domain constraints on parameters
authorNeil Conway
Sun, 15 Jan 2006 22:34:49 +0000 (22:34 +0000)
committerNeil Conway
Sun, 15 Jan 2006 22:34:49 +0000 (22:34 +0000)
to prepared statements with unknown type are correctly enforced, per
recent bug report.

src/test/regress/expected/domain.out
src/test/regress/sql/domain.sql

index 5309234ce23d8ac262dc8a2eeddaa9932b03e582..c89be9535f17721efaff82c94192b5db749ef893 100644 (file)
@@ -314,3 +314,17 @@ create domain str_domain2 as text check (value <> 'foo') default 'foo';
 -- should fail
 alter table domain_test add column d str_domain2;
 ERROR:  value for domain str_domain2 violates check constraint "str_domain2_check"
+-- Check that domain constraints on prepared statement parameters of
+-- unknown type are enforced correctly.
+create domain pos_int as int4 check (value > 0) not null;
+prepare s1 as select $1::pos_int = 10 as "is_ten";
+execute s1(10);
+ is_ten 
+--------
+ t
+(1 row)
+
+execute s1(0); -- should fail
+ERROR:  value for domain pos_int violates check constraint "pos_int_check"
+execute s1(NULL); -- should fail
+ERROR:  domain pos_int does not allow null values
index c80b81262679125b49f37357c7a83bb99d232dd7..f6010e636cb8dcdd6a9fc3be92bca4c38e105a70 100644 (file)
@@ -262,3 +262,12 @@ create domain str_domain2 as text check (value <> 'foo') default 'foo';
 
 -- should fail
 alter table domain_test add column d str_domain2;
+
+-- Check that domain constraints on prepared statement parameters of
+-- unknown type are enforced correctly.
+create domain pos_int as int4 check (value > 0) not null;
+prepare s1 as select $1::pos_int = 10 as "is_ten";
+
+execute s1(10);
+execute s1(0); -- should fail
+execute s1(NULL); -- should fail