diff options
author | Alexander Korotkov <akorotkov@postgresql.org> | 2024-04-30 11:55:13 +0300 |
---|---|---|
committer | Alexander Korotkov <akorotkov@postgresql.org> | 2024-04-30 12:00:39 +0300 |
commit | 259c96fa8f78c0446eba1880850ea6fbe5092120 (patch) | |
tree | 4d9276334eea315a703e859e73b780e1303982fc /src/backend/commands/tablecmds.c | |
parent | 60ae37a8bc02f7a4beef442ee7b4656fba0e4e71 (diff) |
Inherit parent's AM for partition MERGE/SPLIT operations
This commit makes new partitions created by ALTER TABLE ... SPLIT PARTITION
and ALTER TABLE ... MERGE PARTITIONS commands inherit the paret table access
method.
Reported-by: Alexander Lakhin
Discussion: https://postgr.es/m/84ada05b-be5c-473e-6d1c-ebe5dd21b190%40gmail.com
Reviewed-by: Pavel Borisov
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r-- | src/backend/commands/tablecmds.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index c312d9d1975..08c87e60293 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -21213,6 +21213,11 @@ moveSplitTableRows(Relation rel, Relation splitRel, List *partlist, List *newPar * * Emulates command: CREATE [TEMP] TABLE <newPartName> (LIKE <modelRel's name> * INCLUDING ALL EXCLUDING INDEXES EXCLUDING IDENTITY) + * + * Also, this function sets the new partition access method same as parent + * table access methods (similarly to CREATE TABLE ... PARTITION OF). It + * checks that parent and child tables have compatible persistence. + * * Function returns the created relation (locked in AccessExclusiveLock mode). */ static Relation @@ -21243,6 +21248,7 @@ createPartitionTable(RangeVar *newPartName, Relation modelRel, createStmt->oncommit = ONCOMMIT_NOOP; createStmt->tablespacename = NULL; createStmt->if_not_exists = false; + createStmt->accessMethod = get_am_name(modelRel->rd_rel->relam); tlc = makeNode(TableLikeClause); tlc->relation = makeRangeVar(get_namespace_name(RelationGetNamespace(modelRel)), |