mirror of
https://github.com/postgres/postgres.git
synced 2025-07-03 20:02:46 +03:00
Remove ATT_TABLE for ALTER TABLE ... ATTACH/DETACH
Attempting these commands for a non-partitioned table would result in a
failure when creating the relation in transformPartitionCmd(). This
gives the possibility to throw an error earlier with a much better error
message, thanks to d69a3f4d70
.
The extra test cases are from me. Note that FINALIZE uses a different
subcommand and it had no coverage for its failure path with
non-partitioned tables.
Author: Álvaro Herrera, Michael Paquier
Reviewed-by: Nathan Bossart
Discussion: https://postgr.es/m/202409190803.tnis52adt2n5@alvherre.pgsql
This commit is contained in:
@ -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;
|
||||
|
Reference in New Issue
Block a user