Update gorp to support query timeouts on postgres (#6730)

* Update gorp to support query timeouts on postgres

* Update help text to remove postgres exception

* Fix glide.lock
Этот коммит содержится в:
Joram Wilander
2017-06-28 10:34:00 -04:00
коммит произвёл Christopher Speller
родитель 2dea567dcf
Коммит 005dd0754b
7 изменённых файлов: 19 добавлений и 38 удалений

1
vendor/github.com/mattermost/gorp/.gitignore сгенерированный поставляемый
Просмотреть файл

@@ -7,3 +7,4 @@ _obj
6.out
gorptest.bin
tmp
*.swp

21
vendor/github.com/mattermost/gorp/gorp.go сгенерированный поставляемый
Просмотреть файл

@@ -173,13 +173,9 @@ func exec(e SqlExecutor, query string, doTimeout bool, args ...interface{}) (sql
query, args = maybeExpandNamedQuery(dbMap, query, args)
}
if doTimeout && dbMap.Dialect.Name() != "PostgresDialect" {
ctx, cancel := context.WithTimeout(context.Background(), dbMap.QueryTimeout)
defer cancel()
return executor.ExecContext(ctx, query, args...)
} else {
return executor.Exec(query, args...)
}
ctx, cancel := context.WithTimeout(context.Background(), dbMap.QueryTimeout)
defer cancel()
return executor.ExecContext(ctx, query, args...)
}
// maybeExpandNamedQuery checks the given arg to see if it's eligible to be used
@@ -410,14 +406,9 @@ func get(m *DbMap, exec SqlExecutor, i interface{},
dest[x] = target
}
var row *sql.Row
if m.Dialect.Name() != "PostgresDialect" {
ctx, cancel := context.WithTimeout(context.Background(), m.QueryTimeout)
defer cancel()
row = exec.QueryRowContext(ctx, plan.query, keys...)
} else {
row = exec.QueryRow(plan.query, keys...)
}
ctx, cancel := context.WithTimeout(context.Background(), m.QueryTimeout)
defer cancel()
row := exec.QueryRowContext(ctx, plan.query, keys...)
err = row.Scan(dest...)
if err != nil {

23
vendor/github.com/mattermost/gorp/select.go сгенерированный поставляемый
Просмотреть файл

@@ -167,15 +167,9 @@ func selectVal(e SqlExecutor, holder interface{}, query string, args ...interfac
query, args = maybeExpandNamedQuery(dbMap, query, args)
}
var rows *sql.Rows
var err error
if dbMap.Dialect.Name() != "PostgresDialect" {
ctx, cancel := context.WithTimeout(context.Background(), dbMap.QueryTimeout)
defer cancel()
rows, err = e.QueryContext(ctx, query, args...)
} else {
rows, err = e.Query(query, args...)
}
ctx, cancel := context.WithTimeout(context.Background(), dbMap.QueryTimeout)
defer cancel()
rows, err := e.QueryContext(ctx, query, args...)
if err != nil {
return err
@@ -267,14 +261,9 @@ func rawselect(m *DbMap, exec SqlExecutor, i interface{}, query string,
}
// Run the query
var rows *sql.Rows
if m.Dialect.Name() != "PostgresDialect" {
ctx, cancel := context.WithTimeout(context.Background(), m.QueryTimeout)
defer cancel()
rows, err = exec.QueryContext(ctx, query, args...)
} else {
rows, err = exec.Query(query, args...)
}
ctx, cancel := context.WithTimeout(context.Background(), m.QueryTimeout)
defer cancel()
rows, err := exec.QueryContext(ctx, query, args...)
if err != nil {
return nil, err