Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .bazelversion
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
7.4.1
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bazel 8.0.0 just released today, The WORKSPACE file is disabled by default, so fix the version temporarily

36 changes: 8 additions & 28 deletions pkg/ddl/tests/metadatalock/mdl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1016,26 +1016,14 @@ func TestMDLPreparePlanCacheExecuteInsert(t *testing.T) {
tk := testkit.NewTestKitWithSession(t, store, conn1.Context().Session)
conn2 := server.CreateMockConn(t, sv)
tkDDL := testkit.NewTestKitWithSession(t, store, conn2.Context().Session)
conn3 := server.CreateMockConn(t, sv)
tk3 := testkit.NewTestKitWithSession(t, store, conn3.Context().Session)
tk.MustExec("use test")
tk.MustExec("set global tidb_enable_metadata_lock=1")
tk.MustExec("create table t(a int primary key, b int);")
tk.MustExec("create table t2(a int);")
tk.MustExec("insert into t values(1, 1), (2, 2), (3, 3), (4, 4);")

tk.MustExec(`begin`)
tk.MustExec(`prepare delete_stmt from 'delete from t where a = ?'`)
tk.MustExec(`prepare insert_stmt from 'insert into t values (?, ?)'`)
tk.MustExec(`commit`)

tk.MustExec(`begin`)
tk.MustExec(`set @a = 4, @b= 4;`)
tk.MustExec(`execute delete_stmt using @a;`)
tk.MustExec(`execute insert_stmt using @a, @b;`)
tk.MustExec(`commit`)

tk.MustExec("begin")
tk.MustExec(`set @a=4, @b=4;`)

ch := make(chan struct{})

Expand All @@ -1048,19 +1036,10 @@ func TestMDLPreparePlanCacheExecuteInsert(t *testing.T) {
switch idx.BackfillState {
case model.BackfillStateRunning:
if first {
// generate plan, cache it, and make some row change to make
// sure backfill state 'merging' is not skipped.
tk.MustExec(`begin`)
tk.MustExec(`set @a=9;`)
tk.MustExec(`execute delete_stmt using @a;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0"))
tk.MustExec(`set @a=6, @b=4;`)
tk.MustExec(`execute insert_stmt using @a, @b;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0"))
tk.MustExec(`commit`)
tk.MustExec(`begin`)
tk.MustExec(`set @a=4;`)
tk.MustExec(`execute delete_stmt using @a;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("1"))
tk.MustExec(`set @a=4, @b=4;`)
tk.MustExec(`delete from t where a = 4;`)
tk.MustExec(`execute insert_stmt using @a, @b;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0"))
tk.MustExec(`commit`)
Expand All @@ -1069,17 +1048,18 @@ func TestMDLPreparePlanCacheExecuteInsert(t *testing.T) {
// Activate txn.
tk.MustExec("select * from t2")
first = false
tk3.MustExec("insert into test.t values(10000, 1000)")
return
}
}
}
})

ddl.MockDMLExecutionMerging = func() {
tk.MustExec(`execute delete_stmt using @a;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0"))
tk.MustExec(`delete from t where a = 4;`)
// we must generate a new plan here, because the schema has changed since
// the last plan was generated.
tk.MustExec(`execute insert_stmt using @a, @b;`)
tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0"))
tk.MustExec("commit")
}
require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/pkg/ddl/mockDMLExecutionMerging", "1*return(true)->return(false)"))
Expand Down
2 changes: 2 additions & 0 deletions pkg/table/tables/index.go
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,8 @@ func (c *index) create(sctx table.MutateContext, txn kv.Transaction, indexedValu
tempVal := tablecodec.TempIndexValueElem{Value: idxVal, KeyVer: keyVer, Distinct: distinct}
val = tempVal.Encode(nil)
}
// during some step of add-index, such as in write-reorg state, this
// key is THE temp index key.
err = txn.GetMemBuffer().Set(key, val)
if err != nil {
return nil, err
Expand Down