From 597cee67d3939885a423c6abfbfdf2b9ba0bce5a Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 3 Jan 2019 21:46:02 +0100 Subject: [PATCH] cmd/ur*: Updates for 1.0 --- cmd/uraggregate/main.go | 8 ++++---- cmd/ursrv/main.go | 9 +++++++-- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cmd/uraggregate/main.go b/cmd/uraggregate/main.go index 31455045..f2fef605 100644 --- a/cmd/uraggregate/main.go +++ b/cmd/uraggregate/main.go @@ -181,7 +181,7 @@ func aggregateVersionSummary(db *sql.DB, since time.Time) (int64, error) { WHERE DATE_TRUNC('day', Received) > $1 AND DATE_TRUNC('day', Received) < DATE_TRUNC('day', NOW()) - AND Version like 'v0.%' + AND Version like 'v_.%' GROUP BY Day, Ver ); `, since) @@ -199,7 +199,7 @@ func aggregateUserMovement(db *sql.DB) (int64, error) { FROM Reports WHERE DATE_TRUNC('day', Received) < DATE_TRUNC('day', NOW()) - AND Version like 'v0.%' + AND Version like 'v_.%' ORDER BY Day `) if err != nil { @@ -285,7 +285,7 @@ func aggregatePerformance(db *sql.DB, since time.Time) (int64, error) { WHERE DATE_TRUNC('day', Received) > $1 AND DATE_TRUNC('day', Received) < DATE_TRUNC('day', NOW()) - AND Version like 'v0.%' + AND Version like 'v_.%' GROUP BY Day ); `, since) @@ -315,7 +315,7 @@ func aggregateBlockStats(db *sql.DB, since time.Time) (int64, error) { DATE_TRUNC('day', Received) > $1 AND DATE_TRUNC('day', Received) < DATE_TRUNC('day', NOW()) AND ReportVersion = 3 - AND Version LIKE 'v0.%' + AND Version like 'v_.%' AND Version NOT LIKE 'v0.14.40%' AND Version NOT LIKE 'v0.14.39%' AND Version NOT LIKE 'v0.14.38%' diff --git a/cmd/ursrv/main.go b/cmd/ursrv/main.go index 2a07ecb7..c8ee4400 100644 --- a/cmd/ursrv/main.go +++ b/cmd/ursrv/main.go @@ -29,7 +29,7 @@ import ( "unicode" "github.com/lib/pq" - "github.com/oschwald/geoip2-golang" + geoip2 "github.com/oschwald/geoip2-golang" ) var ( @@ -816,6 +816,11 @@ func newDataHandler(db *sql.DB, w http.ResponseWriter, r *http.Request) { } if err := insertReport(db, rep); err != nil { + if err.Error() == `pq: duplicate key value violates unique constraint "uniqueidindex"` { + // We already have a report today for the same unique ID; drop + // this one without complaining. + return + } log.Println("insert:", err) if debug { log.Printf("%#v", rep) @@ -1501,7 +1506,7 @@ func getSummary(db *sql.DB) (summary, error) { } // SUPER UGLY HACK to avoid having to do sorting properly - if len(ver) == 4 { // v0.x + if len(ver) == 4 && strings.HasPrefix(ver, "v0.") { // v0.x ver = ver[:3] + "0" + ver[3:] // now v0.0x }