Re: doc pg_constraint.convalidated column description need update - Mailing list pgsql-hackers

From jian he
Subject Re: doc pg_constraint.convalidated column description need update
Date
Msg-id CACJufxHs_T9u+4UFaWy6kf8aki7zqkAUmMXLdVXBjw3Dnh2++w@mail.gmail.com
Whole thread Raw
In response to Re: doc pg_constraint.convalidated column description need update  (Robert Treat <rob@xzilla.net>)
Responses Re: doc pg_constraint.convalidated column description need update
List pgsql-hackers
On Sat, May 3, 2025 at 11:42 PM Robert Treat <rob@xzilla.net> wrote:
> As such, attached patch removes the above, and attempts some clean up
> of the documentation in ALTER TABLE to better clarify the behavior
> around valid/not valid, enforced/not enforced, and how it affects
> different constraints, with some additional literal tag formatting
> changes.
>

    <para>
-    Adding an enforced <literal>CHECK</literal> or <literal>NOT NULL</literal>
-    constraint requires scanning the table to verify that existing
rows meet the
-    constraint, but does not require a table rewrite.  If a
<literal>CHECK</literal>
-    constraint is added as <literal>NOT ENFORCED</literal>, the validation will
-    not be performed.
+    Adding a <literal>CHECK</literal> or <literal>NOT NULL</literal>
+    constraint requires scanning the table to verify that existing rows meet
+    the constraint, but does not require a table rewrite.  IF a
+    <literal>CHECK</literal> constraint is added as
+    <literal>NOT ENFORCED</literal>, no verification is performed.
    </para>

"IF" should be "if".
i don't know which one ("validation" or "verification") is more accureate,
but i found this
(https://www.eviltester.com/2018/09/no-verification-validation.html)

here, we should also mention <literal>FOREIGN KEY</literal> constraint?


-      This form validates a foreign key, check, or not-null constraint that was
-      previously created as <literal>NOT VALID</literal>, by scanning the
+      This form validates a <literal>FOREIGN KEY</literal>,
+      <literal>CHECK</literal>, or <literal>NOT NULL</literal> constraint that
+      was previously created as <literal>NOT VALID</literal>, by scanning the
       table to ensure there are no rows for which the constraint is not
-      satisfied.  If the constraint is not enforced, an error is thrown.
+      satisfied.  If the constraint was created as
+      <literal>NOT ENFORCED</literal>, an error is thrown.
I think this changes should be great. original text
"If the constraint is not enforced" can mean "some exists row not
satisfied the constraint
condition" or "the constraint is marked as <literal>NOT ENFORCED</literal>".



pgsql-hackers by date:

Previous
From: Pavel Seleznev
Date:
Subject: Re: encode/decode support for base64url
Next
From: jian he
Date:
Subject: Re: 2025-05-08 release announcement draft