Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: golden/go/expstorage/sqlexpstore.go

Issue 650253003: Added HTTP endpoints for Correctness counts (Closed) Base URL: https://skia.googlesource.com/buildbot@master
Patch Set: Fixed typos Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 package expstorage 1 package expstorage
2 2
3 import ( 3 import (
4 "database/sql"
4 "encoding/json" 5 "encoding/json"
5 6
6 "skia.googlesource.com/buildbot.git/go/database" 7 "skia.googlesource.com/buildbot.git/go/database"
7 "skia.googlesource.com/buildbot.git/go/util" 8 "skia.googlesource.com/buildbot.git/go/util"
8 ) 9 )
9 10
10 // Stores expectations in an SQL database without any caching. 11 // Stores expectations in an SQL database without any caching.
11 type SQLExpectationsStore struct { 12 type SQLExpectationsStore struct {
12 vdb *database.VersionedDB 13 vdb *database.VersionedDB
13 } 14 }
14 15
15 func NewSQLExpectationStore(vdb *database.VersionedDB) ExpectationsStore { 16 func NewSQLExpectationStore(vdb *database.VersionedDB) ExpectationsStore {
16 return &SQLExpectationsStore{ 17 return &SQLExpectationsStore{
17 vdb: vdb, 18 vdb: vdb,
18 } 19 }
19 } 20 }
20 21
21 // See ExpectationsStore interface. 22 // See ExpectationsStore interface.
22 func (e *SQLExpectationsStore) Get(modifiable bool) (exp *Expectations, err erro r) { 23 func (e *SQLExpectationsStore) Get(modifiable bool) (exp *Expectations, err erro r) {
23 // Load the newest record from the database. 24 // Load the newest record from the database.
24 stmt := `SELECT expectations 25 stmt := `SELECT expectations
25 FROM expectations 26 FROM expectations
26 ORDER BY ts DESC 27 ORDER BY ts DESC
27 LIMIT 1` 28 LIMIT 1`
28 29
30 // Read the expectations. If there are no rows, that means we have no
31 // expectations yet.
29 var expJSON string 32 var expJSON string
30 » if err := e.vdb.DB.QueryRow(stmt).Scan(&expJSON); err != nil { 33 » switch err := e.vdb.DB.QueryRow(stmt).Scan(&expJSON); {
34 » case err == sql.ErrNoRows:
35 » » return NewExpectations(modifiable), nil
36 » case err != nil:
31 return nil, err 37 return nil, err
32 } 38 }
33 39
34 var result Expectations 40 var result Expectations
35 err = json.Unmarshal([]byte(expJSON), &result) 41 err = json.Unmarshal([]byte(expJSON), &result)
36 42
37 // Since it's freshly allocated we can just set it to the requested mode . 43 // Since it's freshly allocated we can just set it to the requested mode .
38 result.Modifiable = modifiable 44 result.Modifiable = modifiable
39 45
40 return &result, nil 46 return &result, nil
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 // See ExpectationsStore interface. 95 // See ExpectationsStore interface.
90 func (c *CachingExpectationStore) Put(exp *Expectations, userId string) error { 96 func (c *CachingExpectationStore) Put(exp *Expectations, userId string) error {
91 exp.checkModifiable() 97 exp.checkModifiable()
92 98
93 if err := c.store.Put(exp, userId); err != nil { 99 if err := c.store.Put(exp, userId); err != nil {
94 return err 100 return err
95 } 101 }
96 102
97 return c.cache.Put(exp, userId) 103 return c.cache.Put(exp, userId)
98 } 104 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698