diff options
Diffstat (limited to 'src/hub/src/spreadspace.org/sfive/s5store.go')
-rw-r--r-- | src/hub/src/spreadspace.org/sfive/s5store.go | 43 |
1 files changed, 4 insertions, 39 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5store.go b/src/hub/src/spreadspace.org/sfive/s5store.go index 6aa3be8..306cd1b 100644 --- a/src/hub/src/spreadspace.org/sfive/s5store.go +++ b/src/hub/src/spreadspace.org/sfive/s5store.go @@ -2,7 +2,7 @@ package sfive import ( "database/sql" - "time" + //"time" _ "github.com/mattn/go-sqlite3" @@ -113,11 +113,12 @@ func insertAnd(needsAnd *bool) (res string) { } func getFilteredDataUpdateSelect(filter *StatsFilter) (string, map[string]interface{}) { + const baseQuery = "(select * from " + dataUpdatesTn + "," + sourcesTn + " on " + dataUpdatesTn + ".SourceId = " + sourcesTn + ".Id" if isEmptyFilter(filter) { - return dataUpdatesTn, nil + return baseQuery + ")", nil } - query := "(select * from " + dataUpdatesTn + " outer join " + sourcesTn + " on " + dataUpdatesTn + ".SourceId = " + sourcesTn + ".Id where" + query := baseQuery + " where" parameters := make(map[string]interface{}) needsAnd := false @@ -359,42 +360,6 @@ func getBpsStatsSql() string { return "sum(BytesSent) as BytesSent, sum(BytesReceived) as BytesReceived, min(StartTime) as StartTime, max(StartTime) as LastStartTime" } -func (s sqliteStore) CountUpdateEntries(filter *StatsFilter) (count int64, err error) { - sourceSql, parameters := getFilteredDataUpdateSelect(filter) - count, err = s.db.SelectInt("select "+getCountEntriesSql()+" from "+sourceSql, parameters) - return -} - -func (s sqliteStore) CountClients(filter *StatsFilter) int { - sourceSql, parameters := getFilteredDataUpdateSelect(filter) - count, err := s.db.SelectInt("select "+getClientCountSql()+" from "+sourceSql, parameters) - if err != nil { - s5l.Printf("CountClients: %v", err) - return -1 - } - return int(count) -} - -type bpsQueryResult struct { - BytesSent uint - BytesReceived uint - StartTime time.Time - LastStartTime time.Time -} - -func (s sqliteStore) GetAverageBps(filter *StatsFilter) (uint, error) { - sourceSql, parameters := getFilteredDataUpdateSelect(filter) - res := bpsQueryResult{} - err := s.db.SelectOne( - res, - "select "+getBpsStatsSql()+" from "+sourceSql, parameters) - if err == nil { - bps := (res.BytesSent + res.BytesReceived) / uint(res.StartTime.Sub(res.LastStartTime).Seconds()) - return bps, nil - } - return 0, err -} - type statsResult struct { UpdateCount *int ClientCount *float32 |