From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: getting ERROR "relation 16401 has no triggers" with partition foreign key alter |
Date: | 2019-07-17 22:08:47 |
Message-ID: | 20190717220847.GA12100@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2019-Jul-16, Tom Lane wrote:
> Rajkumar Raghuwanshi <rajkumar(dot)raghuwanshi(at)enterprisedb(dot)com> writes:
> > I am getting ERROR: relation 16401 has no triggers error while executing
> > below query.
>
> Yeah, I can reproduce that back to v11. If you try the same scenario
> with a non-partitioned table you get
>
> ERROR: 55006: cannot ALTER TABLE "tbl2" because it has pending trigger events
> LOCATION: CheckTableNotInUse, tablecmds.c:3436
>
> but that test evidently fails to detect pending events for a partition
> child table.
Ah, yeah. So the problem is that when dropping an FK,
ATExecDropConstraint does not recurse itself, but instead relies on the
dependency mechanism, which obviously does not run CheckTableNotInUse on
the partitions.
I think we should just run CheckTableNotInUse for each partition in
ATExecDropConstraint. Trying that out now.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2019-07-17 22:26:45 | pgsql: Sync our copy of the timezone library with IANA release tzcode20 |
Previous Message | Laurenz Albe | 2019-07-17 21:21:06 | Re: pg_receivewal documentation |