pgsql: Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error

Started by Alvaro Herreraabout 1 year ago4 messagescomitters
Jump to latest
#1Alvaro Herrera
alvherre@2ndquadrant.com

Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error

If certain constraint characteristic clauses (NO INHERIT, NOT VALID, NOT
ENFORCED) are given to CREATE CONSTRAINT TRIGGER, the resulting error
message is
ERROR: TRIGGER constraints cannot be marked NO INHERIT
which is a bit silly, because these aren't "constraints of type
TRIGGER". Hardcode a better error message to prevent it. This is a
cosmetic fix for quite a fringe problem with no known complaints from
users, so no backpatch.

While at it, silently accept ENFORCED if given.

Author: Amul Sul <sulamul@gmail.com>
Reviewed-by: jian he <jian.universality@gmail.com>
Reviewed-by: Fujii Masao <masao.fujii@oss.nttdata.com>
Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de>
Discussion: /messages/by-id/CAAJ_b97hd-jMTS7AjgU6TDBCzDx_KyuKxG+K-DtYmOieg+giyQ@mail.gmail.com
Discussion: /messages/by-id/CACJufxHSp2puxP=q8ZtUGL1F+heapnzqFBZy5ZNGUjUgwjBqTQ@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/87251e114967d668c8f90ed9fb8c8a8834c2d288

Modified Files
--------------
doc/src/sgml/ref/create_trigger.sgml | 9 ++++++++-
src/backend/parser/gram.y | 22 +++++++++++++++++++++-
src/test/regress/expected/triggers.out | 23 ++++++++++++++++++++++-
src/test/regress/sql/triggers.sql | 15 ++++++++++++++-
4 files changed, 65 insertions(+), 4 deletions(-)

#2Daniel Gustafsson
daniel@yesql.se
In reply to: Alvaro Herrera (#1)
Re: pgsql: Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error

On 3 Jul 2025, at 11:30, Álvaro Herrera <alvherre@kurilemu.de> wrote:

alabio seems unhappy, and the hunk below seems to be culprit, it should closed
with a </varlistentry> right?

doc/src/sgml/ref/create_trigger.sgml | 9 ++++++++-

+   <varlistentry>
+    <term><literal>ENFORCED</literal></term>
+    <listitem>
+     This is a noise word.  Constraint triggers are always enforced.
+    </listitem>
+   </varlistitem>

--
Daniel Gustafsson

#3Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Daniel Gustafsson (#2)
Re: pgsql: Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error

On 2025-Jul-03, Daniel Gustafsson wrote:

On 3 Jul 2025, at 11:30, Álvaro Herrera <alvherre@kurilemu.de> wrote:

alabio seems unhappy, and the hunk below seems to be culprit, it should closed
with a </varlistentry> right?

Thanks for pointing this out. Yeah, not only I used the wrong tag, but
it's also missing the wrapping <para> around the text. Should be fixed
now.

It turns out our meson port doesn't have the equivalent of a
"make -C doc/src/sgml check". Sigh. Back to configure again for me ...

--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Industry suffers from the managerial dogma that for the sake of stability
and continuity, the company should be independent of the competence of
individual employees." (E. Dijkstra)

#4David G. Johnston
david.g.johnston@gmail.com
In reply to: Alvaro Herrera (#3)
Re: pgsql: Fix bogus grammar for a CREATE CONSTRAINT TRIGGER error

On Thursday, July 3, 2025, Álvaro Herrera <alvherre@kurilemu.de> wrote:

It turns out our meson port doesn't have the equivalent of a
"make -C doc/src/sgml check". Sigh. Back to configure again for me ...

It could if someone wants to push this or something similar.

/messages/by-id/87msoyhk9l.fsf@wibble.ilmari.org

David J.