On Fri, Sep 12, 2014 at 08:51:48PM +0000, obouda@email.cz wrote:
> 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.
Attached doc patch applied. Thanks for the report.
--
Bruce Momjian <bruce@momjian.us> http://momjian.us
EnterpriseDB http://enterprisedb.com
+ Everyone has their own god. +