diff --git a/conn_pool.go b/conn_pool.go index 4b357d2..903fb04 100644 --- a/conn_pool.go +++ b/conn_pool.go @@ -41,8 +41,10 @@ func (pool ConnPool) ExecContext(ctx context.Context, query string, args ...any) if r.DoubleWrite { pool.sharding.Logger.Trace(ctx, curTime, func() (sql string, rowsAffected int64) { result, _ := pool.ConnPool.ExecContext(ctx, ftQuery, args...) - rowsAffected, _ = result.RowsAffected() - return fmt.Sprintf("[Shard] %s", pool.sharding.Explain(ftQuery, args...)), rowsAffected + if result != nil { + rowsAffected, _ = result.RowsAffected() + } + return fmt.Sprintf("[Shard DoubleWrite] %s", pool.sharding.Explain(ftQuery, args...)), rowsAffected }, pool.sharding.Error) } } @@ -51,7 +53,9 @@ func (pool ConnPool) ExecContext(ctx context.Context, query string, args ...any) var result sql.Result result, err = pool.ConnPool.ExecContext(ctx, stQuery, args...) pool.sharding.Logger.Trace(ctx, curTime, func() (sql string, rowsAffected int64) { - rowsAffected, _ = result.RowsAffected() + if result != nil { + rowsAffected, _ = result.RowsAffected() + } return fmt.Sprintf("[Shard] %s", pool.sharding.Explain(stQuery, args...)), rowsAffected }, pool.sharding.Error)