aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/lib
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lib')
-rw-r--r--vendor/github.com/lib/pq/.travis.sh13
-rw-r--r--vendor/github.com/lib/pq/.travis.yml14
-rw-r--r--vendor/github.com/lib/pq/buf.go2
-rw-r--r--vendor/github.com/lib/pq/conn.go42
-rw-r--r--vendor/github.com/lib/pq/error.go10
-rw-r--r--vendor/github.com/lib/pq/oid/gen.go93
-rw-r--r--vendor/github.com/lib/pq/scram/scram.go2
7 files changed, 52 insertions, 124 deletions
diff --git a/vendor/github.com/lib/pq/.travis.sh b/vendor/github.com/lib/pq/.travis.sh
index 21a5264..ebf4470 100644
--- a/vendor/github.com/lib/pq/.travis.sh
+++ b/vendor/github.com/lib/pq/.travis.sh
@@ -70,17 +70,4 @@ postgresql_uninstall() {
sudo rm -rf /var/lib/postgresql
}
-megacheck_install() {
- # Lock megacheck version at $MEGACHECK_VERSION to prevent spontaneous
- # new error messages in old code.
- go get -d honnef.co/go/tools/...
- git -C $GOPATH/src/honnef.co/go/tools/ checkout $MEGACHECK_VERSION
- go install honnef.co/go/tools/cmd/megacheck
- megacheck --version
-}
-
-golint_install() {
- go get golang.org/x/lint/golint
-}
-
$1
diff --git a/vendor/github.com/lib/pq/.travis.yml b/vendor/github.com/lib/pq/.travis.yml
index f030580..8396f5d 100644
--- a/vendor/github.com/lib/pq/.travis.yml
+++ b/vendor/github.com/lib/pq/.travis.yml
@@ -1,9 +1,8 @@
language: go
go:
- - 1.9.x
- - 1.10.x
- 1.11.x
+ - 1.12.x
- master
sudo: true
@@ -14,16 +13,11 @@ env:
- PQGOSSLTESTS=1
- PQSSLCERTTEST_PATH=$PWD/certs
- PGHOST=127.0.0.1
- - MEGACHECK_VERSION=2017.2.2
matrix:
- PGVERSION=10
- PGVERSION=9.6
- PGVERSION=9.5
- PGVERSION=9.4
- - PGVERSION=9.3
- - PGVERSION=9.2
- - PGVERSION=9.1
- - PGVERSION=9.0
before_install:
- ./.travis.sh postgresql_uninstall
@@ -31,9 +25,9 @@ before_install:
- ./.travis.sh postgresql_install
- ./.travis.sh postgresql_configure
- ./.travis.sh client_configure
- - ./.travis.sh megacheck_install
- - ./.travis.sh golint_install
- go get golang.org/x/tools/cmd/goimports
+ - go get golang.org/x/lint/golint
+ - GO111MODULE=on go get honnef.co/go/tools/cmd/staticcheck@2019.2.1
before_script:
- createdb pqgotest
@@ -44,7 +38,7 @@ script:
- >
goimports -d -e $(find -name '*.go') | awk '{ print } END { exit NR == 0 ? 0 : 1 }'
- go vet ./...
- - megacheck -go 1.9 ./...
+ - staticcheck -go 1.11 ./...
- golint ./...
- PQTEST_BINARY_PARAMETERS=no go test -race -v ./...
- PQTEST_BINARY_PARAMETERS=yes go test -race -v ./...
diff --git a/vendor/github.com/lib/pq/buf.go b/vendor/github.com/lib/pq/buf.go
index 666b001..4b0a0a8 100644
--- a/vendor/github.com/lib/pq/buf.go
+++ b/vendor/github.com/lib/pq/buf.go
@@ -66,7 +66,7 @@ func (b *writeBuf) int16(n int) {
}
func (b *writeBuf) string(s string) {
- b.buf = append(b.buf, (s + "\000")...)
+ b.buf = append(append(b.buf, s...), '\000')
}
func (b *writeBuf) byte(c byte) {
diff --git a/vendor/github.com/lib/pq/conn.go b/vendor/github.com/lib/pq/conn.go
index 62551a1..55152b1 100644
--- a/vendor/github.com/lib/pq/conn.go
+++ b/vendor/github.com/lib/pq/conn.go
@@ -92,6 +92,7 @@ type Dialer interface {
DialTimeout(network, address string, timeout time.Duration) (net.Conn, error)
}
+// DialerContext is the context-aware dialer interface.
type DialerContext interface {
DialContext(ctx context.Context, network, address string) (net.Conn, error)
}
@@ -301,6 +302,9 @@ func (c *Connector) open(ctx context.Context) (cn *conn, err error) {
err = cn.ssl(o)
if err != nil {
+ if cn.c != nil {
+ cn.c.Close()
+ }
return nil, err
}
@@ -546,7 +550,7 @@ func (cn *conn) Commit() (err error) {
// would get the same behaviour if you issued a COMMIT in a failed
// transaction, so it's also the least surprising thing to do here.
if cn.txnStatus == txnStatusInFailedTransaction {
- if err := cn.Rollback(); err != nil {
+ if err := cn.rollback(); err != nil {
return err
}
return ErrInFailedTransaction
@@ -573,7 +577,10 @@ func (cn *conn) Rollback() (err error) {
return driver.ErrBadConn
}
defer cn.errRecover(&err)
+ return cn.rollback()
+}
+func (cn *conn) rollback() (err error) {
cn.checkIsInTransaction(true)
_, commandTag, err := cn.simpleExec("ROLLBACK")
if err != nil {
@@ -1500,6 +1507,39 @@ func QuoteIdentifier(name string) string {
return `"` + strings.Replace(name, `"`, `""`, -1) + `"`
}
+// QuoteLiteral quotes a 'literal' (e.g. a parameter, often used to pass literal
+// to DDL and other statements that do not accept parameters) to be used as part
+// of an SQL statement. For example:
+//
+// exp_date := pq.QuoteLiteral("2023-01-05 15:00:00Z")
+// err := db.Exec(fmt.Sprintf("CREATE ROLE my_user VALID UNTIL %s", exp_date))
+//
+// Any single quotes in name will be escaped. Any backslashes (i.e. "\") will be
+// replaced by two backslashes (i.e. "\\") and the C-style escape identifier
+// that PostgreSQL provides ('E') will be prepended to the string.
+func QuoteLiteral(literal string) string {
+ // This follows the PostgreSQL internal algorithm for handling quoted literals
+ // from libpq, which can be found in the "PQEscapeStringInternal" function,
+ // which is found in the libpq/fe-exec.c source file:
+ // https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/interfaces/libpq/fe-exec.c
+ //
+ // substitute any single-quotes (') with two single-quotes ('')
+ literal = strings.Replace(literal, `'`, `''`, -1)
+ // determine if the string has any backslashes (\) in it.
+ // if it does, replace any backslashes (\) with two backslashes (\\)
+ // then, we need to wrap the entire string with a PostgreSQL
+ // C-style escape. Per how "PQEscapeStringInternal" handles this case, we
+ // also add a space before the "E"
+ if strings.Contains(literal, `\`) {
+ literal = strings.Replace(literal, `\`, `\\`, -1)
+ literal = ` E'` + literal + `'`
+ } else {
+ // otherwise, we can just wrap the literal with a pair of single quotes
+ literal = `'` + literal + `'`
+ }
+ return literal
+}
+
func md5s(s string) string {
h := md5.New()
h.Write([]byte(s))
diff --git a/vendor/github.com/lib/pq/error.go b/vendor/github.com/lib/pq/error.go
index 96aae29..3d66ba7 100644
--- a/vendor/github.com/lib/pq/error.go
+++ b/vendor/github.com/lib/pq/error.go
@@ -478,13 +478,13 @@ func errRecoverNoErrBadConn(err *error) {
}
}
-func (c *conn) errRecover(err *error) {
+func (cn *conn) errRecover(err *error) {
e := recover()
switch v := e.(type) {
case nil:
// Do nothing
case runtime.Error:
- c.bad = true
+ cn.bad = true
panic(v)
case *Error:
if v.Fatal() {
@@ -493,7 +493,7 @@ func (c *conn) errRecover(err *error) {
*err = v
}
case *net.OpError:
- c.bad = true
+ cn.bad = true
*err = v
case error:
if v == io.EOF || v.(error).Error() == "remote error: handshake failure" {
@@ -503,13 +503,13 @@ func (c *conn) errRecover(err *error) {
}
default:
- c.bad = true
+ cn.bad = true
panic(fmt.Sprintf("unknown error: %#v", e))
}
// Any time we return ErrBadConn, we need to remember it since *Tx doesn't
// mark the connection bad in database/sql.
if *err == driver.ErrBadConn {
- c.bad = true
+ cn.bad = true
}
}
diff --git a/vendor/github.com/lib/pq/oid/gen.go b/vendor/github.com/lib/pq/oid/gen.go
deleted file mode 100644
index 7c634cd..0000000
--- a/vendor/github.com/lib/pq/oid/gen.go
+++ /dev/null
@@ -1,93 +0,0 @@
-// +build ignore
-
-// Generate the table of OID values
-// Run with 'go run gen.go'.
-package main
-
-import (
- "database/sql"
- "fmt"
- "log"
- "os"
- "os/exec"
- "strings"
-
- _ "github.com/lib/pq"
-)
-
-// OID represent a postgres Object Identifier Type.
-type OID struct {
- ID int
- Type string
-}
-
-// Name returns an upper case version of the oid type.
-func (o OID) Name() string {
- return strings.ToUpper(o.Type)
-}
-
-func main() {
- datname := os.Getenv("PGDATABASE")
- sslmode := os.Getenv("PGSSLMODE")
-
- if datname == "" {
- os.Setenv("PGDATABASE", "pqgotest")
- }
-
- if sslmode == "" {
- os.Setenv("PGSSLMODE", "disable")
- }
-
- db, err := sql.Open("postgres", "")
- if err != nil {
- log.Fatal(err)
- }
- rows, err := db.Query(`
- SELECT typname, oid
- FROM pg_type WHERE oid < 10000
- ORDER BY oid;
- `)
- if err != nil {
- log.Fatal(err)
- }
- oids := make([]*OID, 0)
- for rows.Next() {
- var oid OID
- if err = rows.Scan(&oid.Type, &oid.ID); err != nil {
- log.Fatal(err)
- }
- oids = append(oids, &oid)
- }
- if err = rows.Err(); err != nil {
- log.Fatal(err)
- }
- cmd := exec.Command("gofmt")
- cmd.Stderr = os.Stderr
- w, err := cmd.StdinPipe()
- if err != nil {
- log.Fatal(err)
- }
- f, err := os.Create("types.go")
- if err != nil {
- log.Fatal(err)
- }
- cmd.Stdout = f
- err = cmd.Start()
- if err != nil {
- log.Fatal(err)
- }
- fmt.Fprintln(w, "// Code generated by gen.go. DO NOT EDIT.")
- fmt.Fprintln(w, "\npackage oid")
- fmt.Fprintln(w, "const (")
- for _, oid := range oids {
- fmt.Fprintf(w, "T_%s Oid = %d\n", oid.Type, oid.ID)
- }
- fmt.Fprintln(w, ")")
- fmt.Fprintln(w, "var TypeName = map[Oid]string{")
- for _, oid := range oids {
- fmt.Fprintf(w, "T_%s: \"%s\",\n", oid.Type, oid.Name())
- }
- fmt.Fprintln(w, "}")
- w.Close()
- cmd.Wait()
-}
diff --git a/vendor/github.com/lib/pq/scram/scram.go b/vendor/github.com/lib/pq/scram/scram.go
index 5d0358f..484f378 100644
--- a/vendor/github.com/lib/pq/scram/scram.go
+++ b/vendor/github.com/lib/pq/scram/scram.go
@@ -22,7 +22,7 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Pacakage scram implements a SCRAM-{SHA-1,etc} client per RFC5802.
+// Package scram implements a SCRAM-{SHA-1,etc} client per RFC5802.
//
// http://tools.ietf.org/html/rfc5802
//