Skip to content

Commit bab35b6

Browse files
martinmrIbrahim Jarif
authored and
Ibrahim Jarif
committed
Change else-if statements to idiomatic switch statements. (#1207)
(cherry picked from commit eee1602)
1 parent 76aef51 commit bab35b6

File tree

4 files changed

+64
-47
lines changed

4 files changed

+64
-47
lines changed

db.go

+11-8
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ func (db *DB) replayFunction() func(Entry, valuePointer) error {
146146
ExpiresAt: e.ExpiresAt,
147147
}
148148

149-
if e.meta&bitFinTxn > 0 {
149+
switch {
150+
case e.meta&bitFinTxn > 0:
150151
txnTs, err := strconv.ParseUint(string(e.Value), 10, 64)
151152
if err != nil {
152153
return errors.Wrapf(err, "Unable to parse txn fin: %q", e.Value)
@@ -160,7 +161,7 @@ func (db *DB) replayFunction() func(Entry, valuePointer) error {
160161
txn = txn[:0]
161162
lastCommit = 0
162163

163-
} else if e.meta&bitTxn > 0 {
164+
case e.meta&bitTxn > 0:
164165
txnTs := y.ParseTs(nk)
165166
if lastCommit == 0 {
166167
lastCommit = txnTs
@@ -174,7 +175,7 @@ func (db *DB) replayFunction() func(Entry, valuePointer) error {
174175
te := txnEntry{nk: nk, v: v}
175176
txn = append(txn, te)
176177

177-
} else {
178+
default:
178179
// This entry is from a rewrite.
179180
toLSM(nk, v)
180181

@@ -1055,9 +1056,10 @@ func (db *DB) calculateSize() {
10551056
return err
10561057
}
10571058
ext := filepath.Ext(path)
1058-
if ext == ".sst" {
1059+
switch ext {
1060+
case ".sst":
10591061
lsmSize += info.Size()
1060-
} else if ext == ".vlog" {
1062+
case ".vlog":
10611063
vlogSize += info.Size()
10621064
}
10631065
return nil
@@ -1214,11 +1216,12 @@ func (seq *Sequence) Release() error {
12141216
func (seq *Sequence) updateLease() error {
12151217
return seq.db.Update(func(txn *Txn) error {
12161218
item, err := txn.Get(seq.key)
1217-
if err == ErrKeyNotFound {
1219+
switch {
1220+
case err == ErrKeyNotFound:
12181221
seq.next = 0
1219-
} else if err != nil {
1222+
case err != nil:
12201223
return err
1221-
} else {
1224+
default:
12221225
var num uint64
12231226
if err := item.Value(func(v []byte) error {
12241227
num = binary.BigEndian.Uint64(v)

levels.go

+18-12
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,13 @@ func newLevelsController(db *DB, mf *Manifest) (*levelsController, error) {
8484

8585
for i := 0; i < db.opt.MaxLevels; i++ {
8686
s.levels[i] = newLevelHandler(db, i)
87-
if i == 0 {
87+
switch i {
88+
case 0:
8889
// Do nothing.
89-
} else if i == 1 {
90+
case 1:
9091
// Level 1 probably shouldn't be too much bigger than level 0.
9192
s.levels[i].maxTotalSize = db.opt.LevelOneSize
92-
} else {
93+
default:
9394
s.levels[i].maxTotalSize = s.levels[i-1].maxTotalSize * int64(db.opt.LevelSizeMultiplier)
9495
}
9596
s.cstatus.levels[i] = new(levelCompactStatus)
@@ -360,12 +361,15 @@ func (s *levelsController) runWorker(lc *y.Closer) {
360361
// Can add a done channel or other stuff.
361362
case <-ticker.C:
362363
prios := s.pickCompactLevels()
364+
loop:
363365
for _, p := range prios {
364-
if err := s.doCompact(p); err == nil {
365-
break
366-
} else if err == errFillTables {
366+
err := s.doCompact(p)
367+
switch err {
368+
case nil:
369+
break loop
370+
case errFillTables:
367371
// pass
368-
} else {
372+
default:
369373
s.kv.opt.Warningf("While running doCompact: %v\n", err)
370374
}
371375
}
@@ -475,9 +479,10 @@ func (s *levelsController) compactBuildTables(
475479

476480
// Create iterators across all the tables involved first.
477481
var iters []y.Iterator
478-
if lev == 0 {
482+
switch {
483+
case lev == 0:
479484
iters = appendIteratorsReversed(iters, topTables, false)
480-
} else if len(topTables) > 0 {
485+
case len(topTables) > 0:
481486
y.AssertTrue(len(topTables) == 1)
482487
iters = []y.Iterator{topTables[0].NewIterator(false)}
483488
}
@@ -579,14 +584,15 @@ func (s *levelsController) compactBuildTables(
579584
// versions. Ensure that we're only removing versions below readTs.
580585
skipKey = y.SafeCopy(skipKey, it.Key())
581586

582-
if lastValidVersion {
587+
switch {
588+
case lastValidVersion:
583589
// Add this key. We have set skipKey, so the following key versions
584590
// would be skipped.
585-
} else if hasOverlap {
591+
case hasOverlap:
586592
// If this key range has overlap with lower levels, then keep the deletion
587593
// marker with the latest version, discarding the rest. We have set skipKey,
588594
// so the following key versions would be skipped.
589-
} else {
595+
default:
590596
// If no overlap, we can skip all the versions, by continuing here.
591597
numSkips++
592598
updateStats(vs)

table/merge_iterator.go

+16-13
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,18 @@ func (n *node) setIterator(iter y.Iterator) {
5555
}
5656

5757
func (n *node) setKey() {
58-
if n.merge != nil {
58+
switch {
59+
case n.merge != nil:
5960
n.valid = n.merge.small.valid
6061
if n.valid {
6162
n.key = n.merge.small.key
6263
}
63-
} else if n.concat != nil {
64+
case n.concat != nil:
6465
n.valid = n.concat.Valid()
6566
if n.valid {
6667
n.key = n.concat.Key()
6768
}
68-
} else {
69+
default:
6970
n.valid = n.iter.Valid()
7071
if n.valid {
7172
n.key = n.iter.Key()
@@ -74,11 +75,12 @@ func (n *node) setKey() {
7475
}
7576

7677
func (n *node) next() {
77-
if n.merge != nil {
78+
switch {
79+
case n.merge != nil:
7880
n.merge.Next()
79-
} else if n.concat != nil {
81+
case n.concat != nil:
8082
n.concat.Next()
81-
} else {
83+
default:
8284
n.iter.Next()
8385
}
8486
n.setKey()
@@ -103,22 +105,22 @@ func (mi *MergeIterator) fix() {
103105
return
104106
}
105107
cmp := y.CompareKeys(mi.small.key, mi.bigger().key)
106-
// Both the keys are equal.
107-
if cmp == 0 {
108+
switch {
109+
case cmp == 0: // Both the keys are equal.
108110
// In case of same keys, move the right iterator ahead.
109111
mi.right.next()
110112
if &mi.right == mi.small {
111113
mi.swapSmall()
112114
}
113115
return
114-
} else if cmp < 0 { // Small is less than bigger().
116+
case cmp < 0: // Small is less than bigger().
115117
if mi.reverse {
116118
mi.swapSmall()
117119
} else {
118120
// we don't need to do anything. Small already points to the smallest.
119121
}
120122
return
121-
} else { // bigger() is less than small.
123+
default: // bigger() is less than small.
122124
if mi.reverse {
123125
// Do nothing since we're iterating in reverse. Small currently points to
124126
// the bigger key and that's okay in reverse iteration.
@@ -206,11 +208,12 @@ func (mi *MergeIterator) Close() error {
206208

207209
// NewMergeIterator creates a merge iterator.
208210
func NewMergeIterator(iters []y.Iterator, reverse bool) y.Iterator {
209-
if len(iters) == 0 {
211+
switch len(iters) {
212+
case 0:
210213
return nil
211-
} else if len(iters) == 1 {
214+
case 1:
212215
return iters[0]
213-
} else if len(iters) == 2 {
216+
case 2:
214217
mi := &MergeIterator{
215218
reverse: reverse,
216219
}

value.go

+19-14
Original file line numberDiff line numberDiff line change
@@ -436,15 +436,18 @@ func (vlog *valueLog) iterate(lf *logFile, offset uint32, fn logEntry) (uint32,
436436

437437
var lastCommit uint64
438438
var validEndOffset uint32 = offset
439+
440+
loop:
439441
for {
440442
e, err := read.Entry(reader)
441-
if err == io.EOF {
442-
break
443-
} else if err == io.ErrUnexpectedEOF || err == errTruncate {
444-
break
445-
} else if err != nil {
443+
switch {
444+
case err == io.EOF:
445+
break loop
446+
case err == io.ErrUnexpectedEOF || err == errTruncate:
447+
break loop
448+
case err != nil:
446449
return 0, err
447-
} else if e == nil {
450+
case e == nil:
448451
continue
449452
}
450453

@@ -455,29 +458,30 @@ func (vlog *valueLog) iterate(lf *logFile, offset uint32, fn logEntry) (uint32,
455458
vp.Offset = e.offset
456459
vp.Fid = lf.fid
457460

458-
if e.meta&bitTxn > 0 {
461+
switch {
462+
case e.meta&bitTxn > 0:
459463
txnTs := y.ParseTs(e.Key)
460464
if lastCommit == 0 {
461465
lastCommit = txnTs
462466
}
463467
if lastCommit != txnTs {
464-
break
468+
break loop
465469
}
466470

467-
} else if e.meta&bitFinTxn > 0 {
471+
case e.meta&bitFinTxn > 0:
468472
txnTs, err := strconv.ParseUint(string(e.Value), 10, 64)
469473
if err != nil || lastCommit != txnTs {
470-
break
474+
break loop
471475
}
472476
// Got the end of txn. Now we can store them.
473477
lastCommit = 0
474478
validEndOffset = read.recordOffset
475479

476-
} else {
480+
default:
477481
if lastCommit != 0 {
478482
// This is most likely an entry which was moved as part of GC.
479483
// We shouldn't get this entry in the middle of a transaction.
480-
break
484+
break loop
481485
}
482486
validEndOffset = read.recordOffset
483487
}
@@ -1537,10 +1541,11 @@ func (vlog *valueLog) pickLog(head valuePointer, tr trace.Trace) (files []*logFi
15371541
vlog.filesLock.RLock()
15381542
defer vlog.filesLock.RUnlock()
15391543
fids := vlog.sortedFids()
1540-
if len(fids) <= 1 {
1544+
switch {
1545+
case len(fids) <= 1:
15411546
tr.LazyPrintf("Only one or less value log file.")
15421547
return nil
1543-
} else if head.Fid == 0 {
1548+
case head.Fid == 0:
15441549
tr.LazyPrintf("Head pointer is at zero.")
15451550
return nil
15461551
}

0 commit comments

Comments
 (0)