summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/go-sql-driver/mysql/benchmark_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/go-sql-driver/mysql/benchmark_test.go')
-rw-r--r--vendor/github.com/go-sql-driver/mysql/benchmark_test.go40
1 files changed, 39 insertions, 1 deletions
diff --git a/vendor/github.com/go-sql-driver/mysql/benchmark_test.go b/vendor/github.com/go-sql-driver/mysql/benchmark_test.go
index d72a4183f..7da833a2a 100644
--- a/vendor/github.com/go-sql-driver/mysql/benchmark_test.go
+++ b/vendor/github.com/go-sql-driver/mysql/benchmark_test.go
@@ -11,10 +11,13 @@ package mysql
import (
"bytes"
"database/sql"
+ "database/sql/driver"
+ "math"
"strings"
"sync"
"sync/atomic"
"testing"
+ "time"
)
type TB testing.B
@@ -45,7 +48,11 @@ func initDB(b *testing.B, queries ...string) *sql.DB {
db := tb.checkDB(sql.Open("mysql", dsn))
for _, query := range queries {
if _, err := db.Exec(query); err != nil {
- b.Fatalf("Error on %q: %v", query, err)
+ if w, ok := err.(MySQLWarnings); ok {
+ b.Logf("warning on %q: %v", query, w)
+ } else {
+ b.Fatalf("error on %q: %v", query, err)
+ }
}
}
return db
@@ -206,3 +213,34 @@ func BenchmarkRoundtripBin(b *testing.B) {
rows.Close()
}
}
+
+func BenchmarkInterpolation(b *testing.B) {
+ mc := &mysqlConn{
+ cfg: &Config{
+ InterpolateParams: true,
+ Loc: time.UTC,
+ },
+ maxAllowedPacket: maxPacketSize,
+ maxWriteSize: maxPacketSize - 1,
+ buf: newBuffer(nil),
+ }
+
+ args := []driver.Value{
+ int64(42424242),
+ float64(math.Pi),
+ false,
+ time.Unix(1423411542, 807015000),
+ []byte("bytes containing special chars ' \" \a \x00"),
+ "string containing special chars ' \" \a \x00",
+ }
+ q := "SELECT ?, ?, ?, ?, ?, ?"
+
+ b.ReportAllocs()
+ b.ResetTimer()
+ for i := 0; i < b.N; i++ {
+ _, err := mc.interpolateParams(q, args)
+ if err != nil {
+ b.Fatal(err)
+ }
+ }
+}