Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qZprN-007IMN-GO for pgsql-docs@arkaria.postgresql.org; Sat, 26 Aug 2023 09:45:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qZprK-008kyu-Ih for pgsql-docs@arkaria.postgresql.org; Sat, 26 Aug 2023 09:45:34 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qZcCs-00577T-Nf for pgsql-docs@lists.postgresql.org; Fri, 25 Aug 2023 19:10:54 +0000 Received: from mail.mtc.md ([212.0.215.24]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qZcCo-000wIQ-07 for pgsql-docs@lists.postgresql.org; Fri, 25 Aug 2023 19:10:52 +0000 Received: from localhost (localhost [127.0.0.1]) by mail.mtc.md (Postfix) with ESMTP id 6ECA517CB8BC; Fri, 25 Aug 2023 22:10:50 +0300 (EEST) X-Virus-Scanned: Debian amavisd-new at mail.mtc.md Received: from mail.mtc.md ([127.0.0.1]) by localhost (mail.mtc.md [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 5xoaDC0vJV2b; Fri, 25 Aug 2023 22:10:49 +0300 (EEST) From: Andrei Tihonovschi Subject: Re: CREATE TRIGGER documentation inconsistensies To: Erik Wienhold Cc: References: <169286345424.621.8832808856493079834@wrigleys.postgresql.org> <890483629.390853.1692869266420@office.mailbox.org> In-Reply-To: 890483629.390853.1692869266420@office.mailbox.org Message-ID: <25461b1e.1692986931408@imap.mtc.md> Date: Fri, 25 Aug 2023 21:09:35 +0300 (GMT+03:00) User-Agent: ProfiMailGo/4.32.00 Content-Type: multipart/alternative; boundary="----=_Part_4_104091450.1692990644733" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_Part_4_104091450.1692990644733 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Thanks for clarifying, Erik. That was my fault. I was absolutely sure I've upgraded PostgreSQL to v.14 b= ut actually I've had v.13 running. After upgrading to v.14 the CREATE OR REPLACE TRIGGER construction works as= it was stated in the documentation. Thanks again. Sent by from my Android device. 24 =D0=B0=D0=B2=D0=B3=D1=83=D1=81=D1=82=D0=B0 2023 =D0=B3., 12:27, Erik Wie= nhold =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB (-=D0=B0): On 24/08/2023 09:50 CEST PG Doc comments form wrot= e: The following documentation comment has been logged on the website: Page: https://www.postgresql.org/docs/14/sql-createtrigger.html Description: In PostgreSQL 14 and 15 (previous versions I've not checked) is stated that CREATE TRIGGER statement is as follows: CREATE [OR REPLACE] [CONSTRAINT] TRIGGER however while CREATE TRIGGER works correctly the CREATE OR REPLACE TRIGGER construction leads to SQLSTATE[42601]: Syntax error: 7 ERROR:=C2=A0 syntax error at or near "TRIG= GER" looks like CREATE TRIGGER doesn't support OR REPLACE, but documentation is then incorrect. Works for me on 14.9 and 15.4: BEGIN; CREATE TABLE mytbl (f1 int); CREATE FUNCTION mytrigger() =C2=A0 RETURNS trigger =C2=A0 LANGUAGE plpgsql =C2=A0 AS $$ BEGIN RETURN null; END $$; CREATE OR REPLACE TRIGGER mytrig =C2=A0 BEFORE INSERT =C2=A0 ON mytbl =C2=A0 EXECUTE FUNCTION mytrigger(); COMMIT; CREATE OR REPLACE TRIGGER was added in 14.=C2=A0 Did you test on an older v= ersion? -- Erik ------=_Part_4_104091450.1692990644733 Content-Type: multipart/related; boundary="----=_Part_5_88446955.1692990644740" ------=_Part_5_88446955.1692990644740 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii Thanks for clarifying, Erik.

That was my fault. I was absolutely sure I've upgraded PostgreSQL to v.14 but actually I've had v.13 running.
After upgrading to v.14 the CREATE OR REPLACE TRIGGER construction works as it was stated in the documentation.

Thanks again.

Sent by ProfiMail Go from my Android device.


24 августа 2023 г., 12:27, Erik Wienhold написал (-а):
On 24/08/2023 09:50 CEST PG Doc comments form <noreply@postgresql.org> wrote:

The following documentation comment has been logged on the website:

Page: https://www.postgresql.org/docs/14/sql-createtrigger.html
Description:

In PostgreSQL 14 and 15 (previous versions I've not checked) is stated that
CREATE TRIGGER statement is as follows:

CREATE [OR REPLACE] [CONSTRAINT] TRIGGER

however while CREATE TRIGGER works correctly the CREATE OR REPLACE TRIGGER
construction leads to

SQLSTATE[42601]: Syntax error: 7 ERROR:  syntax error at or near "TRIGGER"

looks like CREATE TRIGGER doesn't support OR REPLACE, but documentation is
then incorrect.

Works for me on 14.9 and 15.4:

BEGIN;
CREATE TABLE mytbl (f1 int);
CREATE FUNCTION mytrigger()
  RETURNS trigger
  LANGUAGE plpgsql
  AS $$ BEGIN RETURN null; END $$;
CREATE OR REPLACE TRIGGER mytrig
  BEFORE INSERT
  ON mytbl
  EXECUTE FUNCTION mytrigger();
COMMIT;

CREATE OR REPLACE TRIGGER was added in 14.  Did you test on an older version?

--
Erik
------=_Part_5_88446955.1692990644740 Content-ID: 07097b3f.1610140584039@lonelycatgames.com Content-Disposition: inline Content-Transfer-Encoding: base64 Content-Type: image/png iVBORw0KGgoAAAANSUhEUgAAAHgAAAAWCAYAAAALmlj4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAA B3RJTUUH3QECEjE7nend4gAAAER0RVh0RmlsZSBOYW1lAEQ6XFByb2plY3RzXFByb2ZpTWFpbFxf cmVzXFByb21vXFByb2ZpTWFpbCBzaWduYXR1cmUgMS5wc2QhXYcmAAASP2lUWHRYTUw6Y29tLmFk b2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRj emtjOWQnPz4KPD9hZG9iZS14YXAtZmlsdGVycyBlc2M9IkNSIj8+Cjx4OnhhcG1ldGEgeG1sbnM6 eD0nYWRvYmU6bnM6bWV0YS8nIHg6eGFwdGs9J1hNUCB0b29sa2l0IDIuOC4yLTMzLCBmcmFtZXdv cmsgMS41Jz4KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIy LXJkZi1zeW50YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4K CiA8cmRmOkRlc2NyaXB0aW9uIGFib3V0PSd1dWlkOjJkMTdmNDc2LTU1MGQtMTFlMi1iZmUwLWVl ZTMwZDlkYTgyOScKICB4bWxuczp4YXBNTT0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21t Lyc+CiAgPHhhcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjdlYWNmNmFjLTU1 MGMtMTFlMi1iZmUwLWVlZTMwZDlkYTgyOTwveGFwTU06RG9jdW1lbnRJRD4KIDwvcmRmOkRlc2Ny aXB0aW9uPgoKPC9yZGY6UkRGPgo8L3g6eGFwbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9J3cnPz4vGanRAAAAGHRFWHRT b2Z0d2FyZQBBZG9iZSBQaG90b3Nob3A0y45nAAAAD3RFWHRXcml0ZXIAU3VwZXJQTkfFxK/dAAAG M0lEQVRo3t1Zy3HbSBB9rdJddASmIjBUG4CgCAwd9iwqApERgIyA5HkPpCIgGQGhCARHYGwEO46g 9/Ja1TU7IEHI2qLdVaqy8Rl09+t+/WYoqopzMxHZA5ioao3fxERkAACqGtqe+ePPv44tMwDwBGAE YA1gduyFizNMxBBAzmBS9wsRKX5BcPcEp6+VAL4DmAIYAuiUg4szzEdxBPwNgK+/WAOvAGQ93x0C eCWwvui3XV6+PMNkPAAIqlq13K+6UNMZdW9OkKY9Xs9Z0Abs1FH1rHcHi0guIqWI7N3fhs5+ND1n nC//MVVtVPVOVZuf/N2xzcj30DBzFDPQE4AlQd6dsOSItD4AEADcAXgG8A3ApOsiF5GDpYh858JT VpD9FQD2IjL+QIytgJ5biu4fESk7JDo7AEAeXV8BmLNT3mMj5ijEekJV1wCyE0RjRp/gwK0ANKTm /CSAmTQ/wGOr+QcAczr+EXYLoI4T4Wbv4FAXsPi+A3j1QDqRU1Cs2PURgYGLr69VVP5VpCcqfmfb cZ2Bi9XA9b7NGUt+gNJXbwCz2v0ADwAWpMk7VRVVvVHVGwDXvF/0pLER6X7cojSLVPcSlAGARQL8 gYgMubWauzjKCFzr6sbUuEtE8xPm+iAxWr4SHKPpLvbkmuw+AjcDMCYGVQulD/nvkXXwgwvyUVU/ qeqE1dDEM5AfvIq3LtZpbXOaVLhiIsoEjT7x3rZFWTf0y+h6QPCeqDJzBj5hYnxxgEULADsywsrF Nzm0P+X39owhdX/jkht3VAFgeWj9qEjGTlBV0b19i4LOGU/tCunWAC4ATFX1mrPCqKuJxQwTmgH4 4a6VAFYi8kp63Mfg8RnbnFd0NnP3rTK39s1I9Lx1B8Ex0DaOfQIZZ8FE1yy2gjQHqvMtk7GlLxWv 4UBh7tv25oytiEeLy0GwvHbcIlosccfv3XzfJRiuZpyfPVNdMCmzRDfNWugj7rJxBFjwnU+gxgDW qvoYU2VEwUOXmLkDuQYwJg2/AtixI3J3/9ol+JZqc+66cwRgS0Bslo/aqJkM8cpnajJAip2MMh8T 3Qi/PhvnkH1xbBOifXTNggxR/jP6NYve+RtAeZHoUqvUge8iOjclUE30bM0AqwTdjfjMJDWTI4GT kQE2AF7cOkuukbPLF24Z0wohmuWfrWP5nQGAF8bwyGKtD+y3V27Ldm9d2pKrN22QUPkD19EPHdRz vIsoeX1CH7bRjsNrJwPW3ttdJtTqnEDVqhrctYJdN3EzuRKRNR0KAEpH87YtuIrOYBvnwL0DcOwd 9rSmqmsRQXwdwE1i62F+jgHcuMMTEzsTUnie6DqvxgsW64KgDe15ERlGjfHNgTuMirYUkS8s9Lsj AMc5GrkRY8W05PXg1HugoLtl3PdWCJcuqLlLcgXgiRWaOYcfU2KBQM9tUc6tHd/ZAZiyi27p8HWU oIwFdcck5YlvrBPX6hbFPTSmYQwmwGoCtj9y3FcaU7DARy7OAQv+nv8PADYswMCdBtgca76bMXfH DmhemJ+CdG1FGlyRZgnF/ugE7MLHdRmJHD9XvC0AzFqU4NKBlDGhtQkXVa1FZEoHAruiSVBT9ROP Bf3sKx0zTNyPGbWPR0RGrogGAJYEc8MY5yyMYdT5C9J+8KPC1Dm7+9AoQDRuHvhN2wM39MdGxG2C ebZOvDaps2jbV+XR/1/YCa0S33VR496fRM/MROSZMzG11lXiYKWPGZjWvUPn05TFNo5FnmOXtUtY 6RJWu7k39WAxth13HSGKO7jtWRczUDN+MzhxC6d12t4NyR8bmIwlj9M+9UyuVeu6hcaP0VPmkjjr 2b15S/c2jmmuIvEzZtfcRbG8mjom3QbGNus4KvpaSOx/bYv5eOpil9Gpy7avVz2q1dsPAAXnODrS WVv3Vq6YTKWnxksuImpz099nwd94xnlH4b/3dGzftgs56ceGUw6wP8C2DpBJzzXySBOYNZFAe3ZU Vifm5hvIHU+fPtLsiHWRot/OHUyRNeTM/d+NHXNPMPrS3Zq/3GwjAfSS+NaNnXadAYhtZuo7nHCO fZCimxOO1D4C5O07l5jER4l2dt2iBxqctz04PRHeBTC75hq/sLETA34fq9wRaW/7FxVAJobmpgqt AAAAAElFTkSuQmCC ------=_Part_5_88446955.1692990644740-- ------=_Part_4_104091450.1692990644733--