From 4dcc82ac7e255c403d5744204534f9338133bcc1 Mon Sep 17 00:00:00 2001 From: Neil Conway <neilc@samurai.com> Date: Sun, 15 Jan 2006 22:34:49 +0000 Subject: [PATCH] Add regression tests to verify that domain constraints on parameters to prepared statements with unknown type are correctly enforced, per recent bug report. --- src/test/regress/expected/domain.out | 14 ++++++++++++++ src/test/regress/sql/domain.sql | 9 +++++++++ 2 files changed, 23 insertions(+) diff --git a/src/test/regress/expected/domain.out b/src/test/regress/expected/domain.out index 5309234ce23..c89be9535f1 100644 --- a/src/test/regress/expected/domain.out +++ b/src/test/regress/expected/domain.out @@ -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 diff --git a/src/test/regress/sql/domain.sql b/src/test/regress/sql/domain.sql index c80b8126267..f6010e636cb 100644 --- a/src/test/regress/sql/domain.sql +++ b/src/test/regress/sql/domain.sql @@ -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 -- GitLab