diff options
author | Martin Polden <mpolden@mpolden.no> | 2020-01-12 10:57:47 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2020-01-12 10:57:47 +0100 |
commit | 7b0df69bb52345c2b9b9361415e817026e2ca5df (patch) | |
tree | 0cb3bda117661d35b1b4ecaec192c69d13d106f6 | |
parent | 42a1ca85d85f3204f69dc57d277d3345b82c13b8 (diff) |
Handle calculating stats for empty table
-rw-r--r-- | sql/sql.go | 2 | ||||
-rw-r--r-- | sql/sql_test.go | 14 |
2 files changed, 13 insertions, 3 deletions
@@ -245,7 +245,7 @@ func (c *Client) readLogStats() (logStats, error) { var stats logStats q1 := `SELECT COUNT(*) as total, COUNT(CASE hijacked WHEN 1 THEN 1 ELSE NULL END) as hijacked, - time AS since + IFNULL(time, 0) AS since FROM log ORDER BY time ASC LIMIT 1` if err := c.db.Get(&stats, q1); err != nil { diff --git a/sql/sql_test.go b/sql/sql_test.go index 5c03c2d..6843d3d 100644 --- a/sql/sql_test.go +++ b/sql/sql_test.go @@ -185,12 +185,22 @@ func TestInterleavedRW(t *testing.T) { func TestReadLogStats(t *testing.T) { c := testClient() - writeTests(c, t) + got, err := c.readLogStats() if err != nil { t.Fatal(err) } - want := logStats{ + want := logStats{} + if !reflect.DeepEqual(got, want) { + t.Errorf("readLogStats() = (%+v, _), want (%+v, _)", got, want) + } + + writeTests(c, t) + got, err = c.readLogStats() + if err != nil { + t.Fatal(err) + } + want = logStats{ Since: 1560636910, Hijacked: 1, Total: 8, |