Skip to content

Commit 30b95e8

Browse files
authored
Merge branch 'master' into bye-errBadConnNoWrite
2 parents f58f76c + 9b8d28e commit 30b95e8

File tree

4 files changed

+17
-3
lines changed

4 files changed

+17
-3
lines changed

connection.go

+12-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@ import (
1313
"database/sql"
1414
"database/sql/driver"
1515
"encoding/json"
16+
"fmt"
1617
"io"
1718
"net"
19+
"runtime"
1820
"strconv"
1921
"strings"
2022
"sync/atomic"
@@ -47,6 +49,16 @@ type mysqlConn struct {
4749

4850
// Helper function to call per-connection logger.
4951
func (mc *mysqlConn) log(v ...any) {
52+
_, filename, lineno, ok := runtime.Caller(1)
53+
if ok {
54+
pos := strings.LastIndexByte(filename, '/')
55+
if pos != -1 {
56+
filename = filename[pos+1:]
57+
}
58+
prefix := fmt.Sprintf("%s:%d ", filename, lineno)
59+
v = append([]any{prefix}, v...)
60+
}
61+
5062
mc.cfg.Logger.Print(v...)
5163
}
5264

@@ -209,7 +221,6 @@ func (mc *mysqlConn) interpolateParams(query string, args []driver.Value) (strin
209221
mc.cleanup()
210222
// interpolateParams would be called before sending any query.
211223
// So its safe to retry.
212-
mc.log(err)
213224
return "", driver.ErrBadConn
214225
}
215226
buf = buf[:0]

driver_test.go

+3
Original file line numberDiff line numberDiff line change
@@ -3539,6 +3539,9 @@ func TestConnectionAttributes(t *testing.T) {
35393539
}
35403540

35413541
func TestErrorInMultiResult(t *testing.T) {
3542+
if !available {
3543+
t.Skipf("MySQL server not running on %s", netAddr)
3544+
}
35423545
// https://github.com/go-sql-driver/mysql/issues/1361
35433546
var db *sql.DB
35443547
if _, err := ParseDSN(dsn); err != errInvalidDSNUnsafeCollation {

errors.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ var (
3131
ErrBusyBuffer = errors.New("busy buffer")
3232
)
3333

34-
var defaultLogger = Logger(log.New(os.Stderr, "[mysql] ", log.Ldate|log.Ltime|log.Lshortfile))
34+
var defaultLogger = Logger(log.New(os.Stderr, "[mysql] ", log.Ldate|log.Ltime))
3535

3636
// Logger is used to log critical error messages.
3737
type Logger interface {

packets.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,8 @@ func (mc *mysqlConn) writePacket(data []byte) error {
117117
// Write packet
118118
if mc.writeTimeout > 0 {
119119
if err := mc.netConn.SetWriteDeadline(time.Now().Add(mc.writeTimeout)); err != nil {
120-
mc.log(err)
121120
mc.cleanup()
121+
mc.log(err)
122122
return err
123123
}
124124
}

0 commit comments

Comments
 (0)