agora inbox for pgsql-docs@postgresql.org
help / color / mirror / Atom feedFrom: Bruce Momjian <bruce@momjian.us>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: David G. Johnston <david.g.johnston@gmail.com>
Cc: elionescu@yahoo.com <elionescu@yahoo.com>
Cc: pgsql-docs@lists.postgresql.org <pgsql-docs@lists.postgresql.org>
Subject: Re: incorrect (incomplete) description for "alter domain"
Date: Wed, 16 Oct 2024 17:11:54 -0400
Message-ID: <ZxAsGmcyYk8es5ac@momjian.us> (raw)
In-Reply-To: <2596729.1722266261@sss.pgh.pa.us>
References: <172225092461.915373.6103973717483380183@wrigleys.postgresql.org>
<CAKFQuwbZ3KDq3CtG0qtw7gVT4EWgmD8XFMktEFcruVs98ihCSw@mail.gmail.com>
<2585954.1722265086@sss.pgh.pa.us>
<2596729.1722266261@sss.pgh.pa.us>
On Mon, Jul 29, 2024 at 11:17:41AM -0400, Tom Lane wrote:
> I wrote:
> > I think the page is technically correct, but I'm inclined to duplicate
> > this text from the CREATE DOMAIN page:
>
> > where domain_constraint is:
> > [ CONSTRAINT constraint_name ]
> > { NOT NULL | NULL | CHECK (expression) }
>
> > rather than making readers go look that up.
>
> Actually, there *is* a bug in the description, because experimentation
> shows that CREATE DOMAIN accepts NULL in this syntax (as advertised)
> but ALTER DOMAIN does not. We could alternatively decide that that's
> a code bug and make ALTER DOMAIN take it, but I don't think it's worth
> any effort (and this behavior may actually have been intentional, too).
> I think we should just add
>
> where domain_constraint is:
>
> [ CONSTRAINT constraint_name ]
> { NOT NULL | CHECK (expression) }
>
> to the ALTER DOMAIN page, and then remove the claim that it's
> identical to CREATE DOMAIN.
I have written the attached patch to document this. I assume this
should be backpatched to PG 12.
--
Bruce Momjian <bruce@momjian.us> https://momjian.us
EDB https://enterprisedb.com
When a patient asks the doctor, "Am I going to die?", he means
"Am I going to die soon?"
Attachments:
[text/x-diff] domain.diff (1.4K, ../ZxAsGmcyYk8es5ac@momjian.us/2-domain.diff)
download | inline diff:
diff --git a/doc/src/sgml/ref/alter_domain.sgml b/doc/src/sgml/ref/alter_domain.sgml
index f6704d7557a..74855172222 100644
--- a/doc/src/sgml/ref/alter_domain.sgml
+++ b/doc/src/sgml/ref/alter_domain.sgml
@@ -41,6 +41,11 @@ ALTER DOMAIN <replaceable class="parameter">name</replaceable>
RENAME TO <replaceable class="parameter">new_name</replaceable>
ALTER DOMAIN <replaceable class="parameter">name</replaceable>
SET SCHEMA <replaceable class="parameter">new_schema</replaceable>
+
+<phrase>where <replaceable class="parameter">domain_constraint</replaceable> is:</phrase>
+
+[ CONSTRAINT <replaceable class="parameter">constraint_name</replaceable> ]
+{ NOT NULL | CHECK (<replaceable class="parameter">expression</replaceable>) }
</synopsis>
</refsynopsisdiv>
@@ -79,8 +84,7 @@ ALTER DOMAIN <replaceable class="parameter">name</replaceable>
<term><literal>ADD <replaceable class="parameter">domain_constraint</replaceable> [ NOT VALID ]</literal></term>
<listitem>
<para>
- This form adds a new constraint to a domain using the same syntax as
- <link linkend="sql-createdomain"><command>CREATE DOMAIN</command></link>.
+ This form adds a new constraint to a domain.
When a new constraint is added to a domain, all columns using that
domain will be checked against the newly added constraint. These
checks can be suppressed by adding the new constraint using the
view thread (9+ messages) latest in thread
Message-ID: <ZxAsGmcyYk8es5ac@momjian.us>
Permalink: ../ZxAsGmcyYk8es5ac@momjian.us/
Also on: postgresql.org/message-id/ZxAsGmcyYk8es5ac@momjian.us
reply
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-docs@postgresql.org
Cc: bruce@momjian.us, tgl@sss.pgh.pa.us, david.g.johnston@gmail.com, elionescu@yahoo.com, pgsql-docs@lists.postgresql.org
Subject: Re: incorrect (incomplete) description for "alter domain"
In-Reply-To: <ZxAsGmcyYk8es5ac@momjian.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox