From 0812b7c4033d668319e216d015353b976f44b0f3 Mon Sep 17 00:00:00 2001 From: Roger Peppe Date: Thu, 13 Jun 2019 11:50:06 +0100 Subject: [PATCH] use Go modules Also use the fastuuid package instead of the problematic go.uuid package, and use the correct import path for `DATA-DOG/go-sqlmock`, as declared in its `go.mod` file. --- go.mod | 14 ++++++++++++++ go.sum | 25 +++++++++++++++++++++++++ sqalx.go | 6 ++++-- sqalx_test.go | 2 +- 4 files changed, 44 insertions(+), 3 deletions(-) create mode 100644 go.mod create mode 100644 go.sum diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..96e579f --- /dev/null +++ b/go.mod @@ -0,0 +1,14 @@ +module github.com/heetch/sqalx + +go 1.13 + +require ( + github.com/DATA-DOG/go-sqlmock v1.3.3 + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/go-sql-driver/mysql v1.4.0 + github.com/jmoiron/sqlx v0.0.0-20190426154859-38398a30ed85 + github.com/lib/pq v1.0.0 + github.com/rogpeppe/fastuuid v1.1.0 + github.com/stretchr/testify v1.3.0 + google.golang.org/appengine v1.4.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..33bd538 --- /dev/null +++ b/go.sum @@ -0,0 +1,25 @@ +github.com/DATA-DOG/go-sqlmock v1.3.3 h1:CWUqKXe0s8A2z6qCgkP4Kru7wC11YoAnoupUKFDnH08= +github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk= +github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/jmoiron/sqlx v0.0.0-20190426154859-38398a30ed85 h1:+LZtdhpMITOXE+MztQPPcwUl+eqYjwlXXLHrd0yWlxw= +github.com/jmoiron/sqlx v0.0.0-20190426154859-38398a30ed85/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks= +github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A= +github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4= +github.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/fastuuid v1.1.0 h1:INyGLmTCMGFr6OVIb977ghJvABML2CMVjPoRfNDdYDo= +github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= diff --git a/sqalx.go b/sqalx.go index 856723a..8d0aae4 100644 --- a/sqalx.go +++ b/sqalx.go @@ -6,7 +6,7 @@ import ( "strings" "github.com/jmoiron/sqlx" - uuid "github.com/satori/go.uuid" + "github.com/rogpeppe/fastuuid" ) var ( @@ -19,6 +19,8 @@ var ( ErrIncompatibleOption = errors.New("incompatible option") ) +var uuids = fastuuid.MustNewGenerator() + // A Node is a database driver that can manage nested transactions. type Node interface { Driver @@ -133,7 +135,7 @@ func (n node) Beginx() (Node, error) { // already in a transaction: using savepoints n.nested = true // savepoints name must start with a char and cannot contain dashes (-) - n.savePointID = "sp_" + strings.Replace(uuid.Must(uuid.NewV1()).String(), "-", "_", -1) + n.savePointID = "sp_" + strings.Replace(uuids.Hex128(), "-", "_", -1) _, err = n.tx.Exec("SAVEPOINT " + n.savePointID) default: // already in a transaction: reusing current transaction diff --git a/sqalx_test.go b/sqalx_test.go index bcd5f81..89a3963 100644 --- a/sqalx_test.go +++ b/sqalx_test.go @@ -4,12 +4,12 @@ import ( "os" "testing" + sqlmock "github.com/DATA-DOG/go-sqlmock" _ "github.com/go-sql-driver/mysql" "github.com/heetch/sqalx" "github.com/jmoiron/sqlx" _ "github.com/lib/pq" "github.com/stretchr/testify/require" - sqlmock "gopkg.in/DATA-DOG/go-sqlmock.v1" ) func prepareDB(t *testing.T, driverName string) (*sqlx.DB, sqlmock.Sqlmock, func()) {