diff --git a/bench_test.go b/bench_test.go new file mode 100644 index 0000000000..1c29d54bc7 --- /dev/null +++ b/bench_test.go @@ -0,0 +1,30 @@ +package tidb + +import ( + "testing" + + "github.com/ngaut/log" +) + +func BenchmarkBasic(b *testing.B) { + store, err := NewStore("memory://bench") + if err != nil { + b.Fatal(err) + } + log.SetLevel(log.LOG_LEVEL_ERROR) + se, err := CreateSession(store) + if err != nil { + b.Fatal(err) + } + for i := 0; i < b.N; i++ { + rs, err := se.Execute("select 1") + if err != nil { + b.Fatal(err) + } + row, err := rs[0].Next() + if err != nil || row == nil { + b.Fatal(err) + } + rs[0].Close() + } +} diff --git a/kv/compactor.go b/kv/compactor.go index 47ebd7a619..1687225e82 100644 --- a/kv/compactor.go +++ b/kv/compactor.go @@ -36,5 +36,5 @@ type Compactor interface { // OnDelete is the hook point on Txn.Delete. OnDelete(k Key) // Compact is the function removes the given key. - Compact(ctx interface{}, k Key) error + Compact(k Key) error } diff --git a/session.go b/session.go index 64c7e57ca9..5906ef7abd 100644 --- a/session.go +++ b/session.go @@ -355,6 +355,7 @@ func (s *session) isAutocommit(ctx context.Context) bool { log.Errorf("Get global sys var error: %v", err) return false } + variable.GetSessionVars(ctx).Systems["autocommit"] = autocommit ok = true } if ok && (autocommit == "ON" || autocommit == "on" || autocommit == "1") { diff --git a/store/localstore/compactor.go b/store/localstore/compactor.go index 0d02b0bf0a..3fdea00dfb 100644 --- a/store/localstore/compactor.go +++ b/store/localstore/compactor.go @@ -125,7 +125,7 @@ func (gc *localstoreCompactor) checkExpiredKeysWorker() { gc.mu.Unlock() log.Info("GC trigger") for k := range m { - err := gc.Compact(nil, []byte(k)) + err := gc.Compact([]byte(k)) if err != nil { log.Error(err) } @@ -159,7 +159,7 @@ func (gc *localstoreCompactor) filterExpiredKeys(keys []kv.EncodedKey) []kv.Enco return ret } -func (gc *localstoreCompactor) Compact(ctx interface{}, k kv.Key) error { +func (gc *localstoreCompactor) Compact(k kv.Key) error { keys, err := gc.getAllVersions(k) if err != nil { return errors.Trace(err)