aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2022-07-31 13:04:43 +0900
committerMichael Paquier <michael@paquier.xyz>2022-07-31 13:04:43 +0900
commit43231423dafc0cedcb52169465589b0d1d3c47d2 (patch)
tree6b706b5f33ef4d7b370e197ac488aedb5d91fe54 /src
parent07ff701dbd53aeb86dd5a09a8b943b3782d4b67f (diff)
downloadpostgresql-43231423dafc0cedcb52169465589b0d1d3c47d2.tar.gz
postgresql-43231423dafc0cedcb52169465589b0d1d3c47d2.zip
Feed ObjectAddress to event triggers for ALTER TABLE ATTACH/DETACH
These flavors of ALTER TABLE were already shaped to report the ObjectAddress of the partition attached or detached, but this data was not added to what is collected for event triggers. The tests of test_ddl_deparse are updated to show the modification in the data reported. Author: Hou Zhijie Reviewed-by: Álvaro Herrera, Amit Kapila, Hayato Kuroda, Michael Paquier Discussion: https://postgr.es/m/OS0PR01MB571626984BD099DADF53F38394899@OS0PR01MB5716.jpnprd01.prod.outlook.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/commands/tablecmds.c16
-rw-r--r--src/test/modules/test_ddl_deparse/expected/alter_table.out4
2 files changed, 10 insertions, 10 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index e7aef2f6b08..d22dd44712a 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -5202,11 +5202,11 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab,
cur_pass, context);
Assert(cmd != NULL);
if (rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE)
- ATExecAttachPartition(wqueue, rel, (PartitionCmd *) cmd->def,
- context);
+ address = ATExecAttachPartition(wqueue, rel, (PartitionCmd *) cmd->def,
+ context);
else
- ATExecAttachPartitionIdx(wqueue, rel,
- ((PartitionCmd *) cmd->def)->name);
+ address = ATExecAttachPartitionIdx(wqueue, rel,
+ ((PartitionCmd *) cmd->def)->name);
break;
case AT_DetachPartition:
cmd = ATParseTransformCmd(wqueue, tab, rel, cmd, false, lockmode,
@@ -5214,12 +5214,12 @@ ATExecCmd(List **wqueue, AlteredTableInfo *tab,
Assert(cmd != NULL);
/* ATPrepCmd ensures it must be a table */
Assert(rel->rd_rel->relkind == RELKIND_PARTITIONED_TABLE);
- ATExecDetachPartition(wqueue, tab, rel,
- ((PartitionCmd *) cmd->def)->name,
- ((PartitionCmd *) cmd->def)->concurrent);
+ address = ATExecDetachPartition(wqueue, tab, rel,
+ ((PartitionCmd *) cmd->def)->name,
+ ((PartitionCmd *) cmd->def)->concurrent);
break;
case AT_DetachPartitionFinalize:
- ATExecDetachPartitionFinalize(rel, ((PartitionCmd *) cmd->def)->name);
+ address = ATExecDetachPartitionFinalize(rel, ((PartitionCmd *) cmd->def)->name);
break;
default: /* oops */
elog(ERROR, "unrecognized alter table type: %d",
diff --git a/src/test/modules/test_ddl_deparse/expected/alter_table.out b/src/test/modules/test_ddl_deparse/expected/alter_table.out
index 5445fb04e4d..87a1ab7aabc 100644
--- a/src/test/modules/test_ddl_deparse/expected/alter_table.out
+++ b/src/test/modules/test_ddl_deparse/expected/alter_table.out
@@ -50,10 +50,10 @@ CREATE TABLE part2 (a int);
NOTICE: DDL test: type simple, tag CREATE TABLE
ALTER TABLE part ATTACH PARTITION part2 FOR VALUES FROM (101) to (200);
NOTICE: DDL test: type alter table, tag ALTER TABLE
-NOTICE: subcommand: type ATTACH PARTITION desc <NULL>
+NOTICE: subcommand: type ATTACH PARTITION desc table part2
ALTER TABLE part DETACH PARTITION part2;
NOTICE: DDL test: type alter table, tag ALTER TABLE
-NOTICE: subcommand: type DETACH PARTITION desc <NULL>
+NOTICE: subcommand: type DETACH PARTITION desc table part2
DROP TABLE part2;
ALTER TABLE part ADD PRIMARY KEY (a);
NOTICE: DDL test: type alter table, tag ALTER TABLE