On 2024-Sep-10, Michael Paquier wrote: > @@ -5060,17 +5061,17 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd > *cmd, > pass = AT_PASS_MISC; > break; > case AT_AttachPartition: > - ATSimplePermissions(cmd->subtype, rel, ATT_TABLE | > ATT_PARTITIONED_INDEX); > + ATSimplePermissions(cmd->subtype, rel, ATT_TABLE | > ATT_PARTITIONED_TABLE | ATT_PARTITIONED_INDEX); > /* No command-specific prep needed */ > pass = AT_PASS_MISC; > break; > case AT_DetachPartition: > - ATSimplePermissions(cmd->subtype, rel, ATT_TABLE); > + ATSimplePermissions(cmd->subtype, rel, ATT_TABLE | > ATT_PARTITIONED_TABLE); > /* No command-specific prep needed */ > pass = AT_PASS_MISC; > break; > case AT_DetachPartitionFinalize: > - ATSimplePermissions(cmd->subtype, rel, ATT_TABLE); > + ATSimplePermissions(cmd->subtype, rel, ATT_TABLE | > ATT_PARTITIONED_TABLE); > /* No command-specific prep needed */ > pass = AT_PASS_MISC; > break;
It looks to me like these cases could be modified to accept only ATT_PARTITIONED_TABLE, not ATT_TABLE anymore. The ATT_TABLE cases are useless anyway, because they're rejected by transformPartitionCmd. -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/
>From eab048c9c7e01df46b0d98d68507c98d9fa187c1 Mon Sep 17 00:00:00 2001 From: Alvaro Herrera <alvhe...@alvh.no-ip.org> Date: Thu, 19 Sep 2024 09:51:07 +0200 Subject: [PATCH] Don't take ATT_TABLE for ALTER TABLE ... ATTACH/DETACH --- src/backend/commands/tablecmds.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 2d703aa22e..d27e6cf345 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -5107,19 +5107,17 @@ ATPrepCmd(List **wqueue, Relation rel, AlterTableCmd *cmd, break; case AT_AttachPartition: ATSimplePermissions(cmd->subtype, rel, - ATT_TABLE | ATT_PARTITIONED_TABLE | ATT_PARTITIONED_INDEX); + ATT_PARTITIONED_TABLE | ATT_PARTITIONED_INDEX); /* No command-specific prep needed */ pass = AT_PASS_MISC; break; case AT_DetachPartition: - ATSimplePermissions(cmd->subtype, rel, - ATT_TABLE | ATT_PARTITIONED_TABLE); + ATSimplePermissions(cmd->subtype, rel, ATT_PARTITIONED_TABLE); /* No command-specific prep needed */ pass = AT_PASS_MISC; break; case AT_DetachPartitionFinalize: - ATSimplePermissions(cmd->subtype, rel, - ATT_TABLE | ATT_PARTITIONED_TABLE); + ATSimplePermissions(cmd->subtype, rel, ATT_PARTITIONED_TABLE); /* No command-specific prep needed */ pass = AT_PASS_MISC; break; -- 2.39.2