From 4405e74355733075759b9a3f1c5696897c3c55c5 Mon Sep 17 00:00:00 2001 From: Neil Conway Date: Tue, 25 Jan 2005 03:22:19 +0000 Subject: [PATCH] Regression tests for recent bugfix to ALTER TABLE ADD COLUMN: ensure that constraints on domain types are properly enforced, even if the newly added column has no default value. Per bug #1433. --- src/test/regress/expected/domain.out | 14 ++++++++++++++ src/test/regress/sql/domain.sql | 18 ++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/test/regress/expected/domain.out b/src/test/regress/expected/domain.out index 750ebf7ccd..e959b4a9b7 100644 --- a/src/test/regress/expected/domain.out +++ b/src/test/regress/expected/domain.out @@ -300,3 +300,17 @@ drop domain ddef2 restrict; drop domain ddef3 restrict; drop domain ddef4 restrict; drop domain ddef5 restrict; +-- Make sure that constraints of newly-added domain columns are +-- enforced correctly, even if there's no default value for the new +-- column. Per bug #1433 +create domain str_domain as text not null; +create table domain_test (a int, b int); +insert into domain_test values (1, 2); +insert into domain_test values (1, 2); +-- should fail +alter table domain_test add column c str_domain; +ERROR: domain str_domain does not allow null values +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" diff --git a/src/test/regress/sql/domain.sql b/src/test/regress/sql/domain.sql index acbb9f80ea..386adede16 100644 --- a/src/test/regress/sql/domain.sql +++ b/src/test/regress/sql/domain.sql @@ -244,3 +244,21 @@ drop domain ddef2 restrict; drop domain ddef3 restrict; drop domain ddef4 restrict; drop domain ddef5 restrict; + +-- Make sure that constraints of newly-added domain columns are +-- enforced correctly, even if there's no default value for the new +-- column. Per bug #1433 +create domain str_domain as text not null; + +create table domain_test (a int, b int); + +insert into domain_test values (1, 2); +insert into domain_test values (1, 2); + +-- should fail +alter table domain_test add column c str_domain; + +create domain str_domain2 as text check (value <> 'foo') default 'foo'; + +-- should fail +alter table domain_test add column d str_domain2; -- 2.11.0