The following bug has been logged on the website:
Bug reference: 11411
Logged by: OndÅej Bouda
Email address: obouda@email.cz
PostgreSQL version: 9.3.5
Operating system: Windows 7 64bit
Description:
The documentation for ALTER DOMAIN notes that "ALTER DOMAIN ADD CONSTRAINT
and ALTER DOMAIN SET NOT NULL will fail if the named domain or any derived
domain is used within a composite-type column of any table in the
database."
It appears current Postgres also fails on ALTER DOMAIN VALIDATE CONSTRAINT
in such a case, as demonstrated by the following script:
CREATE DOMAIN test_domain AS TEXT CONSTRAINT some_check CHECK (TRUE);
CREATE TYPE test_composite AS (num INT, word test_domain);
CREATE TABLE test_table (val test_composite);
ALTER DOMAIN test_domain VALIDATE CONSTRAINT some_check;
Since the documentation says nothing special regarding ALTER DOMAIN VALIDATE
CONSTRAINT on a domain used by composite-type columns, the query is expected
to run without errors.
Instead, the following error is reported:
[0A000] ERROR: cannot alter type "test_domain" because column
"test_table.val" uses it
It is questionable whether this is an implementation or documentation bug,
but it certainly is a bug.