Skip to content

Commit

Permalink
Merge pull request pingcap#415 from pingcap/c4pt0r/remove-keyCmpFn
Browse files Browse the repository at this point in the history
kv: remove useless keyCmpFn from Seek/Next iterface.
  • Loading branch information
ngaut committed Oct 19, 2015
2 parents 6d2aba7 + 5ff8eb3 commit 6710d23
Show file tree
Hide file tree
Showing 12 changed files with 47 additions and 53 deletions.
4 changes: 2 additions & 2 deletions ddl/ddl.go
Original file line number Diff line number Diff line change
Expand Up @@ -512,7 +512,7 @@ func updateOldRows(ctx context.Context, t *tables.Table, col *column.Col) error
if err != nil {
return errors.Trace(err)
}
it, err := txn.Seek([]byte(t.FirstKey()), nil)
it, err := txn.Seek([]byte(t.FirstKey()))
if err != nil {
return errors.Trace(err)
}
Expand Down Expand Up @@ -685,7 +685,7 @@ func (d *ddl) buildIndex(ctx context.Context, t table.Table, idxInfo *model.Inde
if err != nil {
return errors.Trace(err)
}
it, err := txn.Seek([]byte(firstKey), nil)
it, err := txn.Seek([]byte(firstKey))
if err != nil {
return errors.Trace(err)
}
Expand Down
10 changes: 5 additions & 5 deletions kv/index_iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ func (c *indexIter) Next() (k []interface{}, h int64, err error) {
k = vv
}
// update new iter to next
newIt, err := c.it.Next(hasPrefix([]byte(c.prefix)))
newIt, err := c.it.Next()
if err != nil {
return nil, 0, errors.Trace(err)
}
Expand Down Expand Up @@ -198,7 +198,7 @@ func hasPrefix(prefix []byte) FnKeyCmp {
// Drop removes the KV index from store.
func (c *kvIndex) Drop(txn Transaction) error {
prefix := []byte(c.prefix)
it, err := txn.Seek(Key(prefix), hasPrefix(prefix))
it, err := txn.Seek(Key(prefix))
if err != nil {
return errors.Trace(err)
}
Expand All @@ -213,7 +213,7 @@ func (c *kvIndex) Drop(txn Transaction) error {
if err != nil {
return errors.Trace(err)
}
it, err = it.Next(hasPrefix(prefix))
it, err = it.Next()
if err != nil {
return errors.Trace(err)
}
Expand All @@ -227,7 +227,7 @@ func (c *kvIndex) Seek(txn Transaction, indexedValues []interface{}) (iter Index
if err != nil {
return nil, false, errors.Trace(err)
}
it, err := txn.Seek(keyBuf, hasPrefix([]byte(c.prefix)))
it, err := txn.Seek(keyBuf)
if err != nil {
return nil, false, errors.Trace(err)
}
Expand All @@ -242,7 +242,7 @@ func (c *kvIndex) Seek(txn Transaction, indexedValues []interface{}) (iter Index
// SeekFirst returns an iterator which points to the first entry of the KV index.
func (c *kvIndex) SeekFirst(txn Transaction) (iter IndexIterator, err error) {
prefix := []byte(c.prefix)
it, err := txn.Seek(prefix, hasPrefix(prefix))
it, err := txn.Seek(prefix)
if err != nil {
return nil, errors.Trace(err)
}
Expand Down
2 changes: 1 addition & 1 deletion kv/iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ func DecodeValue(data []byte) ([]interface{}, error) {
func NextUntil(it Iterator, fn FnKeyCmp) (Iterator, error) {
var err error
for it.Valid() && !fn([]byte(it.Key())) {
it, err = it.Next(nil)
it, err = it.Next()
if err != nil {
return nil, errors.Trace(err)
}
Expand Down
4 changes: 2 additions & 2 deletions kv/kv.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ type Transaction interface {
// Set sets the value for key k as v into KV store.
Set(k Key, v []byte) error
// Seek searches for the entry with key k in KV store.
Seek(k Key, fnKeyCmp func(key Key) bool) (Iterator, error)
Seek(k Key) (Iterator, error)
// Inc increases the value for key k in KV store by step.
Inc(k Key, step int64) (int64, error)
// GetInt64 get int64 which created by Inc method.
Expand Down Expand Up @@ -171,7 +171,7 @@ type FnKeyCmp func(key Key) bool

// Iterator is the interface for a interator on KV store.
type Iterator interface {
Next(FnKeyCmp) (Iterator, error)
Next() (Iterator, error)
Value() []byte
Key() string
Valid() bool
Expand Down
4 changes: 2 additions & 2 deletions kv/union_iter.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ func (iter *UnionIter) dirtyNext() {

// Go next and update valid status.
func (iter *UnionIter) snapshotNext() {
iter.snapshotIt, _ = iter.snapshotIt.Next(nil)
iter.snapshotIt, _ = iter.snapshotIt.Next()
iter.snapshotValid = iter.snapshotIt.Valid()
}

Expand Down Expand Up @@ -116,7 +116,7 @@ func (iter *UnionIter) updateCur() {
}

// Next implements the Iterator Next interface.
func (iter *UnionIter) Next(f FnKeyCmp) (Iterator, error) {
func (iter *UnionIter) Next() (Iterator, error) {
if !iter.curIsDirty {
iter.snapshotNext()
} else {
Expand Down
4 changes: 2 additions & 2 deletions plan/plans/from.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ func (r *TableNilPlan) Next(ctx context.Context) (row *plan.Row, err error) {
if err != nil {
return nil, errors.Trace(err)
}
r.iter, err = txn.Seek([]byte(r.T.FirstKey()), nil)
r.iter, err = txn.Seek([]byte(r.T.FirstKey()))
if err != nil {
return nil, errors.Trace(err)
}
Expand Down Expand Up @@ -274,7 +274,7 @@ func (r *TableDefaultPlan) Next(ctx context.Context) (row *plan.Row, err error)
if err != nil {
return nil, errors.Trace(err)
}
r.iter, err = txn.Seek([]byte(r.T.FirstKey()), nil)
r.iter, err = txn.Seek([]byte(r.T.FirstKey()))
if err != nil {
return nil, errors.Trace(err)
}
Expand Down
32 changes: 16 additions & 16 deletions store/localstore/kv_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ func valToStr(c *C, iter kv.Iterator) string {
func checkSeek(c *C, txn kv.Transaction) {
for i := startIndex; i < testCount; i++ {
val := encodeInt(i)
iter, err := txn.Seek(val, nil)
iter, err := txn.Seek(val)
c.Assert(err, IsNil)
c.Assert(iter.Key(), Equals, string(val))
c.Assert(decodeInt([]byte(valToStr(c, iter))), Equals, i)
Expand All @@ -103,12 +103,12 @@ func checkSeek(c *C, txn kv.Transaction) {
// Test iterator Next()
for i := startIndex; i < testCount-1; i++ {
val := encodeInt(i)
iter, err := txn.Seek(val, nil)
iter, err := txn.Seek(val)
c.Assert(err, IsNil)
c.Assert(iter.Key(), Equals, string(val))
c.Assert(valToStr(c, iter), Equals, string(val))

next, err := iter.Next(nil)
next, err := iter.Next()
c.Assert(err, IsNil)
c.Assert(next.Valid(), IsTrue)

Expand All @@ -119,7 +119,7 @@ func checkSeek(c *C, txn kv.Transaction) {
}

// Non exist seek test
iter, err := txn.Seek(encodeInt(testCount), nil)
iter, err := txn.Seek(encodeInt(testCount))
c.Assert(err, IsNil)
c.Assert(iter.Valid(), IsFalse)
iter.Close()
Expand Down Expand Up @@ -264,19 +264,19 @@ func (s *testKVSuite) TestDelete2(c *C) {
txn, err = s.s.Begin()
c.Assert(err, IsNil)

it, err := txn.Seek([]byte("DATA_test_tbl_department_record__0000000001_0003"), nil)
it, err := txn.Seek([]byte("DATA_test_tbl_department_record__0000000001_0003"))
c.Assert(err, IsNil)
for it.Valid() {
err = txn.Delete([]byte(it.Key()))
c.Assert(err, IsNil)
it, err = it.Next(nil)
it, err = it.Next()
c.Assert(err, IsNil)
}
txn.Commit()

txn, err = s.s.Begin()
c.Assert(err, IsNil)
it, _ = txn.Seek([]byte("DATA_test_tbl_department_record__000000000"), nil)
it, _ = txn.Seek([]byte("DATA_test_tbl_department_record__000000000"))
c.Assert(it.Valid(), IsFalse)
txn.Commit()

Expand All @@ -299,7 +299,7 @@ func (s *testKVSuite) TestBasicSeek(c *C) {
c.Assert(err, IsNil)
defer txn.Commit()

it, err := txn.Seek([]byte("2"), nil)
it, err := txn.Seek([]byte("2"))
c.Assert(err, IsNil)
c.Assert(it.Valid(), Equals, false)
txn.Delete([]byte("1"))
Expand All @@ -320,30 +320,30 @@ func (s *testKVSuite) TestBasicTable(c *C) {
err = txn.Set([]byte("1"), []byte("1"))
c.Assert(err, IsNil)

it, err := txn.Seek([]byte("0"), nil)
it, err := txn.Seek([]byte("0"))
c.Assert(err, IsNil)
c.Assert(it.Key(), Equals, "1")

err = txn.Set([]byte("0"), []byte("0"))
c.Assert(err, IsNil)
it, err = txn.Seek([]byte("0"), nil)
it, err = txn.Seek([]byte("0"))
c.Assert(err, IsNil)
c.Assert(it.Key(), Equals, "0")
err = txn.Delete([]byte("0"))
c.Assert(err, IsNil)

txn.Delete([]byte("1"))
it, err = txn.Seek([]byte("0"), nil)
it, err = txn.Seek([]byte("0"))
c.Assert(err, IsNil)
c.Assert(it.Key(), Equals, "2")

err = txn.Delete([]byte("3"))
c.Assert(err, IsNil)
it, err = txn.Seek([]byte("2"), nil)
it, err = txn.Seek([]byte("2"))
c.Assert(err, IsNil)
c.Assert(it.Key(), Equals, "2")

it, err = txn.Seek([]byte("3"), nil)
it, err = txn.Seek([]byte("3"))
c.Assert(err, IsNil)
c.Assert(it.Key(), Equals, "4")
err = txn.Delete([]byte("2"))
Expand Down Expand Up @@ -401,13 +401,13 @@ func (s *testKVSuite) TestSeekMin(c *C) {
txn.Set([]byte(kv.key), []byte(kv.value))
}

it, err := txn.Seek(nil, nil)
it, err := txn.Seek(nil)
for it.Valid() {
fmt.Printf("%s, %s\n", it.Key(), it.Value())
it, _ = it.Next(nil)
it, _ = it.Next()
}

it, err = txn.Seek([]byte("DATA_test_main_db_tbl_tbl_test_record__00000000000000000000"), nil)
it, err = txn.Seek([]byte("DATA_test_main_db_tbl_tbl_test_record__00000000000000000000"))
c.Assert(err, IsNil)
c.Assert(string(it.Key()), Equals, "DATA_test_main_db_tbl_tbl_test_record__00000000000000000001")

Expand Down
18 changes: 9 additions & 9 deletions store/localstore/mvcc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,11 @@ func (t *testMvccSuite) TestMvccPutAndDel(c *C) {

func (t *testMvccSuite) TestMvccNext(c *C) {
txn, _ := t.s.Begin()
it, err := txn.Seek(encodeInt(2), nil)
it, err := txn.Seek(encodeInt(2))
c.Assert(err, IsNil)
c.Assert(it.Valid(), IsTrue)
for it.Valid() {
it, err = it.Next(nil)
it, err = it.Next()
c.Assert(err, IsNil)
}
txn.Commit()
Expand Down Expand Up @@ -199,7 +199,7 @@ func (t *testMvccSuite) TestMvccSuiteGetLatest(c *C) {
c.Assert(err, IsNil)
c.Assert(string(b), Equals, string(encodeInt(100+9)))
// we can always scan newest data
it, err := tx.Seek(encodeInt(5), nil)
it, err := tx.Seek(encodeInt(5))
c.Assert(err, IsNil)
c.Assert(it.Valid(), IsTrue)
c.Assert(string(it.Value()), Equals, string(encodeInt(100+9)))
Expand Down Expand Up @@ -244,7 +244,7 @@ func (t *testMvccSuite) TestMvccSnapshotScan(c *C) {
if string(it.Value()) == "new" {
found = true
}
it, err = it.Next(nil)
it, err = it.Next()
c.Assert(err, IsNil)
}
return found
Expand All @@ -271,31 +271,31 @@ func (t *testMvccSuite) TestBufferedIterator(c *C) {
tx.Commit()

tx, _ = s.Begin()
iter, err := tx.Seek([]byte{0}, nil)
iter, err := tx.Seek([]byte{0})
c.Assert(err, IsNil)
cnt := 0
for iter.Valid() {
iter, err = iter.Next(nil)
iter, err = iter.Next()
c.Assert(err, IsNil)
cnt++
}
tx.Commit()
c.Assert(cnt, Equals, 6)

tx, _ = s.Begin()
it, err := tx.Seek([]byte{0xff, 0xee}, nil)
it, err := tx.Seek([]byte{0xff, 0xee})
c.Assert(err, IsNil)
c.Assert(it.Valid(), IsTrue)
c.Assert(it.Key(), Equals, "\xff\xff\xee\xff")
tx.Commit()

// no such key
tx, _ = s.Begin()
it, err = tx.Seek([]byte{0xff, 0xff, 0xff, 0xff}, nil)
it, err = tx.Seek([]byte{0xff, 0xff, 0xff, 0xff})
c.Assert(err, IsNil)
c.Assert(it.Valid(), IsFalse)

it, err = tx.Seek([]byte{0x0, 0xff}, nil)
it, err = tx.Seek([]byte{0x0, 0xff})
c.Assert(err, IsNil)
c.Assert(it.Valid(), IsTrue)
c.Assert(it.Value(), DeepEquals, []byte("2"))
Expand Down
4 changes: 2 additions & 2 deletions store/localstore/snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,11 +136,11 @@ func newDBIter(s *dbSnapshot, startKey kv.Key, exceptedVer kv.Version) *dbIter {
valid: true,
exceptedVersion: exceptedVer,
}
it.Next(nil)
it.Next()
return it
}

func (it *dbIter) Next(fn kv.FnKeyCmp) (kv.Iterator, error) {
func (it *dbIter) Next() (kv.Iterator, error) {
encKey := codec.EncodeBytes(nil, it.startKey)
var retErr error
var engineIter engine.Iterator
Expand Down
8 changes: 1 addition & 7 deletions store/localstore/txn.go
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ func (txn *dbTxn) Set(k kv.Key, data []byte) error {
return nil
}

func (txn *dbTxn) Seek(k kv.Key, fnKeyCmp func(kv.Key) bool) (kv.Iterator, error) {
func (txn *dbTxn) Seek(k kv.Key) (kv.Iterator, error) {
log.Debugf("seek key:%q, txn:%d", k, txn.tid)
k = kv.EncodeKey(k)

Expand All @@ -160,12 +160,6 @@ func (txn *dbTxn) Seek(k kv.Key, fnKeyCmp func(kv.Key) bool) (kv.Iterator, error
return &kv.UnionIter{}, nil
}

if fnKeyCmp != nil {
if fnKeyCmp([]byte(iter.Key())[:1]) {
return &kv.UnionIter{}, nil
}
}

return iter, nil
}

Expand Down
2 changes: 1 addition & 1 deletion table/tables/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -530,7 +530,7 @@ func (t *Table) IterRecords(ctx context.Context, startKey string, cols []*column
return err
}

it, err := txn.Seek([]byte(startKey), nil)
it, err := txn.Seek([]byte(startKey))
if err != nil {
return err
}
Expand Down
8 changes: 4 additions & 4 deletions util/prefix_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ func hasPrefix(prefix []byte) kv.FnKeyCmp {

// ScanMetaWithPrefix scans metadata with the prefix.
func ScanMetaWithPrefix(txn kv.Transaction, prefix string, filter func([]byte, []byte) bool) error {
iter, err := txn.Seek([]byte(prefix), hasPrefix([]byte(prefix)))
iter, err := txn.Seek([]byte(prefix))
if err != nil {
return errors.Trace(err)
}
Expand All @@ -51,7 +51,7 @@ func ScanMetaWithPrefix(txn kv.Transaction, prefix string, filter func([]byte, [
if !filter([]byte(iter.Key()), iter.Value()) {
break
}
iter, err = iter.Next(hasPrefix([]byte(prefix)))
iter, err = iter.Next()
} else {
break
}
Expand All @@ -68,7 +68,7 @@ func DelKeyWithPrefix(ctx context.Context, prefix string) error {
}

var keys []string
iter, err := txn.Seek([]byte(prefix), hasPrefix([]byte(prefix)))
iter, err := txn.Seek([]byte(prefix))
if err != nil {
return errors.Trace(err)
}
Expand All @@ -81,7 +81,7 @@ func DelKeyWithPrefix(ctx context.Context, prefix string) error {

if iter.Valid() && strings.HasPrefix(iter.Key(), prefix) {
keys = append(keys, iter.Key())
iter, err = iter.Next(hasPrefix([]byte(prefix)))
iter, err = iter.Next()
} else {
break
}
Expand Down

0 comments on commit 6710d23

Please sign in to comment.