Thread: BUG #17930: Regression in DISABLE TRIGGER ALL

BUG #17930: Regression in DISABLE TRIGGER ALL

From
PG Bug reporting form
Date:
The following bug has been logged on the website:

Bug reference:      17930
Logged by:          Olivier Chédru
Email address:      ochedru@gmail.com
PostgreSQL version: 15.3
Operating system:   Linux
Description:

Hi!

The following script creates a partition table with a foreign key and works
fine on PostgreSQL 14:

begin;
create table a(id int primary key);
create table b(id int primary key, a_id int not null references a(id))
partition by range(id);
create table b_default(like b including defaults including constraints);
alter table b attach partition b_default default;
alter table b disable trigger all;
commit;

On PostgresSQL 15, it fails on DISABLE TRIGGER ALL:

ERROR:  trigger "RI_ConstraintTrigger_c_20196703" for table "b_default" does
not exist

It seems to use a wrong trigger name. In this case,
RI_ConstraintTrigger_c_20196703 is the name of a trigger defined on the
parent table b.

Thank you.


Re: BUG #17930: Regression in DISABLE TRIGGER ALL

From
Olivier Chédru
Date:
My bad, this issue is a duplicate of bug #17817 and has been fixed in PostgreSQL 15.3.
Sorry for the spam.

On Fri, May 12, 2023 at 9:53 AM PG Bug reporting form <noreply@postgresql.org> wrote:
The following bug has been logged on the website:

Bug reference:      17930
Logged by:          Olivier Chédru
Email address:      ochedru@gmail.com
PostgreSQL version: 15.3
Operating system:   Linux
Description:       

Hi!

The following script creates a partition table with a foreign key and works
fine on PostgreSQL 14:

begin;
create table a(id int primary key);
create table b(id int primary key, a_id int not null references a(id))
partition by range(id);
create table b_default(like b including defaults including constraints);
alter table b attach partition b_default default;
alter table b disable trigger all;
commit;

On PostgresSQL 15, it fails on DISABLE TRIGGER ALL:

ERROR:  trigger "RI_ConstraintTrigger_c_20196703" for table "b_default" does
not exist

It seems to use a wrong trigger name. In this case,
RI_ConstraintTrigger_c_20196703 is the name of a trigger defined on the
parent table b.

Thank you.

Re: BUG #17930: Regression in DISABLE TRIGGER ALL

From
Tom Lane
Date:
PG Bug reporting form <noreply@postgresql.org> writes:
> The following script creates a partition table with a foreign key and works
> fine on PostgreSQL 14:

> begin;
> create table a(id int primary key);
> create table b(id int primary key, a_id int not null references a(id))
> partition by range(id);
> create table b_default(like b including defaults including constraints);
> alter table b attach partition b_default default;
> alter table b disable trigger all;
> commit;

> On PostgresSQL 15, it fails on DISABLE TRIGGER ALL:
> ERROR:  trigger "RI_ConstraintTrigger_c_20196703" for table "b_default" does
> not exist

It works for me with 15.3.  I don't think you are actually running
15.3 (i.e., yesterday's minor release), because this symptom matches
a bug we fixed in 15.3.

            regards, tom lane