Fix bug
This commit is contained in:
parent
63d9bc09c2
commit
4e559eee5d
|
@ -124,12 +124,15 @@ func (db *DB) reflectNew(typ reflect.Type) reflect.Value {
|
||||||
// QueryContext overwrites sql.DB.QueryContext
|
// QueryContext overwrites sql.DB.QueryContext
|
||||||
func (db *DB) QueryContext(ctx context.Context, query string, args ...interface{}) (*Rows, error) {
|
func (db *DB) QueryContext(ctx context.Context, query string, args ...interface{}) (*Rows, error) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
if db.Logger != nil {
|
||||||
db.Logger.BeforeSQL(log.LogContext{
|
db.Logger.BeforeSQL(log.LogContext{
|
||||||
Ctx: ctx,
|
Ctx: ctx,
|
||||||
SQL: query,
|
SQL: query,
|
||||||
Args: args,
|
Args: args,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
rows, err := db.DB.QueryContext(ctx, query, args...)
|
rows, err := db.DB.QueryContext(ctx, query, args...)
|
||||||
|
if db.Logger != nil {
|
||||||
db.Logger.AfterSQL(log.LogContext{
|
db.Logger.AfterSQL(log.LogContext{
|
||||||
Ctx: ctx,
|
Ctx: ctx,
|
||||||
SQL: query,
|
SQL: query,
|
||||||
|
@ -137,6 +140,7 @@ func (db *DB) QueryContext(ctx context.Context, query string, args ...interface{
|
||||||
ExecuteTime: time.Now().Sub(start),
|
ExecuteTime: time.Now().Sub(start),
|
||||||
Err: err,
|
Err: err,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if rows != nil {
|
if rows != nil {
|
||||||
rows.Close()
|
rows.Close()
|
||||||
|
@ -242,12 +246,15 @@ func (db *DB) ExecStructContext(ctx context.Context, query string, st interface{
|
||||||
|
|
||||||
func (db *DB) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
|
func (db *DB) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
|
||||||
start := time.Now()
|
start := time.Now()
|
||||||
|
if db.Logger != nil {
|
||||||
db.Logger.BeforeSQL(log.LogContext{
|
db.Logger.BeforeSQL(log.LogContext{
|
||||||
Ctx: ctx,
|
Ctx: ctx,
|
||||||
SQL: query,
|
SQL: query,
|
||||||
Args: args,
|
Args: args,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
res, err := db.DB.ExecContext(ctx, query, args...)
|
res, err := db.DB.ExecContext(ctx, query, args...)
|
||||||
|
if db.Logger != nil {
|
||||||
db.Logger.AfterSQL(log.LogContext{
|
db.Logger.AfterSQL(log.LogContext{
|
||||||
Ctx: ctx,
|
Ctx: ctx,
|
||||||
SQL: query,
|
SQL: query,
|
||||||
|
@ -255,6 +262,7 @@ func (db *DB) ExecContext(ctx context.Context, query string, args ...interface{}
|
||||||
ExecuteTime: time.Now().Sub(start),
|
ExecuteTime: time.Now().Sub(start),
|
||||||
Err: err,
|
Err: err,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
return res, err
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
49
core/tx.go
49
core/tx.go
|
@ -7,6 +7,9 @@ package core
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"xorm.io/xorm/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Tx struct {
|
type Tx struct {
|
||||||
|
@ -64,7 +67,7 @@ func (tx *Tx) ExecMapContext(ctx context.Context, query string, mp interface{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return tx.Tx.ExecContext(ctx, query, args...)
|
return tx.ExecContext(ctx, query, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *Tx) ExecMap(query string, mp interface{}) (sql.Result, error) {
|
func (tx *Tx) ExecMap(query string, mp interface{}) (sql.Result, error) {
|
||||||
|
@ -76,7 +79,29 @@ func (tx *Tx) ExecStructContext(ctx context.Context, query string, st interface{
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return tx.Tx.ExecContext(ctx, query, args...)
|
return tx.ExecContext(ctx, query, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (tx *Tx) ExecContext(ctx context.Context, query string, args ...interface{}) (sql.Result, error) {
|
||||||
|
start := time.Now()
|
||||||
|
if tx.db.Logger != nil {
|
||||||
|
tx.db.Logger.BeforeSQL(log.LogContext{
|
||||||
|
Ctx: ctx,
|
||||||
|
SQL: query,
|
||||||
|
Args: args,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
res, err := tx.Tx.ExecContext(ctx, query, args...)
|
||||||
|
if tx.db.Logger != nil {
|
||||||
|
tx.db.Logger.AfterSQL(log.LogContext{
|
||||||
|
Ctx: ctx,
|
||||||
|
SQL: query,
|
||||||
|
Args: args,
|
||||||
|
ExecuteTime: time.Now().Sub(start),
|
||||||
|
Err: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
return res, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *Tx) ExecStruct(query string, st interface{}) (sql.Result, error) {
|
func (tx *Tx) ExecStruct(query string, st interface{}) (sql.Result, error) {
|
||||||
|
@ -84,8 +109,28 @@ func (tx *Tx) ExecStruct(query string, st interface{}) (sql.Result, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (tx *Tx) QueryContext(ctx context.Context, query string, args ...interface{}) (*Rows, error) {
|
func (tx *Tx) QueryContext(ctx context.Context, query string, args ...interface{}) (*Rows, error) {
|
||||||
|
start := time.Now()
|
||||||
|
if tx.db.Logger != nil {
|
||||||
|
tx.db.Logger.BeforeSQL(log.LogContext{
|
||||||
|
Ctx: ctx,
|
||||||
|
SQL: query,
|
||||||
|
Args: args,
|
||||||
|
})
|
||||||
|
}
|
||||||
rows, err := tx.Tx.QueryContext(ctx, query, args...)
|
rows, err := tx.Tx.QueryContext(ctx, query, args...)
|
||||||
|
if tx.db.Logger != nil {
|
||||||
|
tx.db.Logger.AfterSQL(log.LogContext{
|
||||||
|
Ctx: ctx,
|
||||||
|
SQL: query,
|
||||||
|
Args: args,
|
||||||
|
ExecuteTime: time.Now().Sub(start),
|
||||||
|
Err: err,
|
||||||
|
})
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if rows != nil {
|
||||||
|
rows.Close()
|
||||||
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return &Rows{rows, tx.db}, nil
|
return &Rows{rows, tx.db}, nil
|
||||||
|
|
Loading…
Reference in New Issue