Skip to content

Commit

Permalink
planner: disallow split clustered index with SPLIT TABLE .. INDEX
Browse files Browse the repository at this point in the history
  • Loading branch information
tangenta committed Oct 7, 2023
1 parent 413a58f commit 98ed2d6
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 1 deletion.
4 changes: 4 additions & 0 deletions executor/test/splittest/split_table_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ func TestClusterIndexSplitTableIntegration(t *testing.T) {
tk.MustExec("create table t (a varchar(255), b decimal, c int, primary key (a, b));")
errMsg = "[types:1265]Incorrect value: '' for column 'b'"
tk.MustGetErrMsg("split table t by ('aaa', '')", errMsg)

tk.MustExec("drop table t;")
tk.MustExec("CREATE TABLE t (`id` varchar(10) NOT NULL, primary key (`id`) CLUSTERED);")
tk.MustGetErrCode("split table t index `primary` between (0) and (1000) regions 2;", errno.ErrKeyDoesNotExist)
}

func TestClusterIndexShowTableRegion(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion planner/core/planbuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -4596,7 +4596,7 @@ func (b *PlanBuilder) buildSplitRegion(node *ast.SplitRegionStmt) (Plan, error)
func (b *PlanBuilder) buildSplitIndexRegion(node *ast.SplitRegionStmt) (Plan, error) {
tblInfo := node.Table.TableInfo
indexInfo := tblInfo.FindIndexByName(node.IndexName.L)
if indexInfo == nil {
if indexInfo == nil || indexInfo.Primary && tblInfo.IsCommonHandle {
return nil, ErrKeyDoesNotExist.GenWithStackByArgs(node.IndexName, tblInfo.Name)
}
mockTablePlan := LogicalTableDual{}.Init(b.ctx, b.getSelectOffset())
Expand Down

0 comments on commit 98ed2d6

Please sign in to comment.