Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers
От
Alvaro Herrera
Тема
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers
Дата
Msg-id
20201020202001.GA6423@alvherre.pgsql
Ответ на
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers (Alvaro Herrera)
Список
Дерево обсуждения
CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Tom Lane <tgl@sss.pgh.pa.us>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Tom Lane <tgl@sss.pgh.pa.us>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Alvaro Herrera <alvherre@alvh.no-ip.org>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Justin Pryzby <pryzby@telsasoft.com>
Re: CREATE TABLE .. PARTITION OF fails to preserve tgenabled for inherited row triggers Zhihong Yu <zyu@yugabyte.com>
On 2020-Oct-16, Alvaro Herrera wrote: > On 2020-Oct-16, Alvaro Herrera wrote: > > > I also just noticed that ALTER TABLE ONLY recurses to children, which it > > should not. > > Apparently I wrote (bogus) bespoke code to handle recursion in > EnableDisableTrigger instead of using ATSimpleRecursion. This patch > seems to fix this problem. ... but it affects legacy inheritance, which would be undesirable because it has never recursed for that case. So it needs to have a relkind check here and only recurse if it's a new-style partitioned table: > 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+.
В списке pgsql-hackers по дате отправления
От: Tom Lane
Дата: