Copy the free pages stats from the receiver

master
Martin Kobetic 2014-06-27 17:38:06 +00:00
parent d1a77a9c82
commit 8c386e72f3
2 changed files with 8 additions and 0 deletions

4
db.go
View File

@ -579,6 +579,10 @@ func (s *Stats) Sub(other *Stats) Stats {
return *s return *s
} }
var diff Stats var diff Stats
diff.FreePageN = s.FreePageN
diff.PendingPageN = s.PendingPageN
diff.FreeAlloc = s.FreeAlloc
diff.FreelistInuse = s.FreelistInuse
diff.TxN = other.TxN - s.TxN diff.TxN = other.TxN - s.TxN
diff.TxStats = s.TxStats.Sub(&other.TxStats) diff.TxStats = s.TxStats.Sub(&other.TxStats)
return diff return diff

View File

@ -354,9 +354,13 @@ func TestDB_String(t *testing.T) {
func TestDBStats_Sub(t *testing.T) { func TestDBStats_Sub(t *testing.T) {
var a, b Stats var a, b Stats
a.TxStats.PageCount = 3 a.TxStats.PageCount = 3
a.FreePageN = 4
b.TxStats.PageCount = 10 b.TxStats.PageCount = 10
b.FreePageN = 14
diff := b.Sub(&a) diff := b.Sub(&a)
assert.Equal(t, 7, diff.TxStats.PageCount) assert.Equal(t, 7, diff.TxStats.PageCount)
// free page stats are copied from the receiver and not subtracted
assert.Equal(t, 14, diff.FreePageN)
} }
// Ensure that meta with bad magic is invalid. // Ensure that meta with bad magic is invalid.