Обсуждение: CREATE TRIGGER documentation inconsistensies

Поиск
Список
Период
Сортировка

CREATE TRIGGER documentation inconsistensies

От
PG Doc comments form
Дата:
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.

Re: CREATE TRIGGER documentation inconsistensies

От
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



Re: CREATE TRIGGER documentation inconsistensies

От
Andrei Tihonovschi
Дата:
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
Вложения