Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers

Alvaro Herrera <alvherre@alvh.no-ip.org>

From: Alvaro Herrera <alvherre@alvh.no-ip.org>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: pgsql-hackers@postgresql.org, Amit Langote <amitlangote09@gmail.com>
Date: 2020-10-20T22:26:21Z
Lists: pgsql-hackers
On 2020-Oct-20, Alvaro Herrera wrote:

> > diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
> > index 511f015a86..c8d6f78da2 100644
> > --- a/src/backend/commands/tablecmds.c
> > +++ b/src/backend/commands/tablecmds.c
> > @@ -4321,6 +4321,7 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd,
> >  		case AT_DisableTrigAll:
> >  		case AT_DisableTrigUser:
> >  			ATSimplePermissions(rel, ATT_TABLE | ATT_FOREIGN_TABLE);
> > +			ATSimpleRecursion(wqueue, rel, cmd, recurse, lockmode, context);
> >  			pass = AT_PASS_MISC;
> >  			break;
> >  		case AT_EnableRule:		/* ENABLE/DISABLE RULE variants */
> 
> I'll add tests for both cases and push to all branches 11+.

Pushed this part.



Commits

  1. Fix pg_dump for disabled triggers on partitioned tables

  2. Preserve firing-on state when cloning row triggers to partitions

  3. Fix ALTER TABLE .. ENABLE/DISABLE TRIGGER recursion

  4. psql \d: Display table where trigger is defined, if inherited

  5. Fix cloning of row triggers to sub-partitions

  6. Make pg_dump emit ATTACH PARTITION instead of PARTITION OF (reprise)