From 058a9614b22b42e1a93546e1f0e7ee1aae1ceb05 Mon Sep 17 00:00:00 2001 From: Mattias Jonsson Date: Tue, 21 Nov 2023 13:10:10 +0100 Subject: [PATCH] ddl: Fix placement policy in alter table partition by (#48631) close pingcap/tidb#48630 --- pkg/ddl/ddl_api.go | 4 ++++ tests/integrationtest/r/partition.result | 3 +++ tests/integrationtest/t/partition.test | 3 +++ 3 files changed, 10 insertions(+) create mode 100644 tests/integrationtest/r/partition.result create mode 100644 tests/integrationtest/t/partition.test diff --git a/pkg/ddl/ddl_api.go b/pkg/ddl/ddl_api.go index f8ceff2bd0c5f..2995daf1bf812 100644 --- a/pkg/ddl/ddl_api.go +++ b/pkg/ddl/ddl_api.go @@ -4376,6 +4376,10 @@ func (d *ddl) AlterTablePartitioning(ctx sessionctx.Context, ident ast.Ident, sp } newPartInfo := newMeta.Partition + if err = handlePartitionPlacement(ctx, newPartInfo); err != nil { + return errors.Trace(err) + } + if err = d.assignPartitionIDs(newPartInfo.Definitions); err != nil { return errors.Trace(err) } diff --git a/tests/integrationtest/r/partition.result b/tests/integrationtest/r/partition.result new file mode 100644 index 0000000000000..8aea25f8498bf --- /dev/null +++ b/tests/integrationtest/r/partition.result @@ -0,0 +1,3 @@ +create placement policy pp1 followers=1; +create table t (a int); +alter table t partition by range (a) (partition p0 values less than (1000000), partition pMax values less than (maxvalue) placement policy pp1); diff --git a/tests/integrationtest/t/partition.test b/tests/integrationtest/t/partition.test new file mode 100644 index 0000000000000..8aea25f8498bf --- /dev/null +++ b/tests/integrationtest/t/partition.test @@ -0,0 +1,3 @@ +create placement policy pp1 followers=1; +create table t (a int); +alter table t partition by range (a) (partition p0 values less than (1000000), partition pMax values less than (maxvalue) placement policy pp1);