Skip to content

Commit 427661d

Browse files
committed
revert changes of public API of traces
1 parent 1ba3a4d commit 427661d

File tree

7 files changed

+88
-62
lines changed

7 files changed

+88
-62
lines changed

internal/xsql/conn.go

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,11 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (_ driver.Stmt,
160160
return nil, badconn.Map(xerrors.WithStackTrace(errNotReadyConn))
161161
}
162162
return &stmt{
163-
conn: c,
164-
processor: c,
165-
prepareCtx: ctx,
166-
query: query,
167-
trace: c.trace,
163+
conn: c,
164+
processor: c,
165+
stmtCtx: ctx,
166+
query: query,
167+
trace: c.trace,
168168
}, nil
169169
}
170170

@@ -175,6 +175,18 @@ func (c *conn) sinceLastUsage() time.Duration {
175175
func (c *conn) execContext(ctx context.Context, query string, args []driver.NamedValue) (
176176
_ driver.Result, finalErr error,
177177
) {
178+
defer func() {
179+
c.lastUsage.Store(time.Now().Unix())
180+
}()
181+
182+
if !c.isReady() {
183+
return nil, badconn.Map(xerrors.WithStackTrace(errNotReadyConn))
184+
}
185+
186+
if c.currentTx != nil {
187+
return c.currentTx.ExecContext(ctx, query, args)
188+
}
189+
178190
var (
179191
m = queryModeFromContext(ctx, c.defaultQueryMode)
180192
onDone = trace.DatabaseSQLOnConnExec(
@@ -183,9 +195,9 @@ func (c *conn) execContext(ctx context.Context, query string, args []driver.Name
183195
)
184196

185197
defer func() {
186-
c.lastUsage.Store(time.Now().Unix())
187198
onDone(finalErr)
188199
}()
200+
189201
switch m {
190202
case DataQueryMode:
191203
normalizedQuery, params, err := c.normalize(query, args...)
@@ -270,14 +282,28 @@ func (c *conn) QueryContext(ctx context.Context, query string, args []driver.Nam
270282
func (c *conn) queryContext(ctx context.Context, query string, args []driver.NamedValue) (
271283
_ driver.Rows, finalErr error,
272284
) {
273-
m := queryModeFromContext(ctx, c.defaultQueryMode)
274-
onDone := trace.DatabaseSQLOnConnQuery(
275-
c.trace, &ctx, stack.FunctionID(0), query, m.String(), xcontext.IsIdempotent(ctx), c.sinceLastUsage(),
276-
)
277285
defer func() {
278286
c.lastUsage.Store(time.Now().Unix())
287+
}()
288+
289+
if !c.isReady() {
290+
return nil, badconn.Map(xerrors.WithStackTrace(errNotReadyConn))
291+
}
292+
293+
if c.currentTx != nil {
294+
return c.currentTx.QueryContext(ctx, query, args)
295+
}
296+
297+
var (
298+
m = queryModeFromContext(ctx, c.defaultQueryMode)
299+
onDone = trace.DatabaseSQLOnConnQuery(
300+
c.trace, &ctx, stack.FunctionID(0), query, m.String(), xcontext.IsIdempotent(ctx), c.sinceLastUsage(),
301+
)
302+
)
303+
defer func() {
279304
onDone(finalErr)
280305
}()
306+
281307
switch m {
282308
case DataQueryMode:
283309
normalizedQuery, params, err := c.normalize(query, args...)

internal/xsql/stmt.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ type stmt struct {
1717
driver.ExecerContext
1818
driver.QueryerContext
1919
}
20-
query string
21-
prepareCtx context.Context
20+
query string
21+
stmtCtx context.Context
2222

2323
trace *trace.DatabaseSQL
2424
}
@@ -30,7 +30,7 @@ var (
3030
)
3131

3232
func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (_ driver.Rows, finalErr error) {
33-
onDone := trace.DatabaseSQLOnStmtQuery(s.trace, &ctx, stack.FunctionID(0), &s.prepareCtx, s.query)
33+
onDone := trace.DatabaseSQLOnStmtQuery(s.trace, &ctx, stack.FunctionID(0), s.stmtCtx, s.query)
3434
defer func() {
3535
onDone(finalErr)
3636
}()
@@ -46,7 +46,7 @@ func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (_ dr
4646
}
4747

4848
func (s *stmt) ExecContext(ctx context.Context, args []driver.NamedValue) (_ driver.Result, finalErr error) {
49-
onDone := trace.DatabaseSQLOnStmtExec(s.trace, &ctx, stack.FunctionID(0), &s.prepareCtx, s.query)
49+
onDone := trace.DatabaseSQLOnStmtExec(s.trace, &ctx, stack.FunctionID(0), s.stmtCtx, s.query)
5050
defer func() {
5151
onDone(finalErr)
5252
}()
@@ -66,17 +66,17 @@ func (s *stmt) NumInput() int {
6666
}
6767

6868
func (s *stmt) Close() (finalErr error) {
69-
onDone := trace.DatabaseSQLOnStmtClose(s.trace, &s.prepareCtx, stack.FunctionID(0))
69+
onDone := trace.DatabaseSQLOnStmtClose(s.trace, &s.stmtCtx, stack.FunctionID(0))
7070
defer func() {
7171
onDone(finalErr)
7272
}()
7373
return nil
7474
}
7575

76-
func (s stmt) Exec(args []driver.Value) (driver.Result, error) {
76+
func (s *stmt) Exec([]driver.Value) (driver.Result, error) {
7777
return nil, errDeprecated
7878
}
7979

80-
func (s stmt) Query(args []driver.Value) (driver.Rows, error) {
80+
func (s *stmt) Query([]driver.Value) (driver.Rows, error) {
8181
return nil, errDeprecated
8282
}

internal/xsql/tx.go

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import (
1414
)
1515

1616
type tx struct {
17-
conn *conn
18-
beginCtx context.Context
19-
tx table.Transaction
17+
conn *conn
18+
txCtx context.Context
19+
tx table.Transaction
2020
}
2121

2222
var (
@@ -45,9 +45,9 @@ func (c *conn) beginTx(ctx context.Context, txOptions driver.TxOptions) (current
4545
return nil, badconn.Map(xerrors.WithStackTrace(err))
4646
}
4747
c.currentTx = &tx{
48-
conn: c,
49-
beginCtx: ctx,
50-
tx: transaction,
48+
conn: c,
49+
txCtx: ctx,
50+
tx: transaction,
5151
}
5252
return c.currentTx, nil
5353
}
@@ -71,7 +71,7 @@ func (tx *tx) checkTxState() error {
7171
}
7272

7373
func (tx *tx) Commit() (finalErr error) {
74-
onDone := trace.DatabaseSQLOnTxCommit(tx.conn.trace, &tx.beginCtx, stack.FunctionID(0), tx)
74+
onDone := trace.DatabaseSQLOnTxCommit(tx.conn.trace, &tx.txCtx, stack.FunctionID(0), tx)
7575
defer func() {
7676
onDone(finalErr)
7777
}()
@@ -81,15 +81,15 @@ func (tx *tx) Commit() (finalErr error) {
8181
defer func() {
8282
tx.conn.currentTx = nil
8383
}()
84-
_, err := tx.tx.CommitTx(tx.beginCtx)
84+
_, err := tx.tx.CommitTx(tx.txCtx)
8585
if err != nil {
8686
return badconn.Map(xerrors.WithStackTrace(err))
8787
}
8888
return nil
8989
}
9090

9191
func (tx *tx) Rollback() (finalErr error) {
92-
onDone := trace.DatabaseSQLOnTxRollback(tx.conn.trace, &tx.beginCtx, stack.FunctionID(0), tx)
92+
onDone := trace.DatabaseSQLOnTxRollback(tx.conn.trace, &tx.txCtx, stack.FunctionID(0), tx)
9393
defer func() {
9494
onDone(finalErr)
9595
}()
@@ -99,7 +99,7 @@ func (tx *tx) Rollback() (finalErr error) {
9999
defer func() {
100100
tx.conn.currentTx = nil
101101
}()
102-
err := tx.tx.Rollback(tx.beginCtx)
102+
err := tx.tx.Rollback(tx.txCtx)
103103
if err != nil {
104104
return badconn.Map(xerrors.WithStackTrace(err))
105105
}
@@ -109,7 +109,7 @@ func (tx *tx) Rollback() (finalErr error) {
109109
func (tx *tx) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (
110110
_ driver.Rows, finalErr error,
111111
) {
112-
onDone := trace.DatabaseSQLOnTxQuery(tx.conn.trace, &ctx, stack.FunctionID(0), &tx.beginCtx, tx, query, true)
112+
onDone := trace.DatabaseSQLOnTxQuery(tx.conn.trace, &ctx, stack.FunctionID(0), tx.txCtx, tx, query, true)
113113
defer func() {
114114
onDone(finalErr)
115115
}()
@@ -147,7 +147,7 @@ func (tx *tx) QueryContext(ctx context.Context, query string, args []driver.Name
147147
func (tx *tx) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (
148148
_ driver.Result, finalErr error,
149149
) {
150-
onDone := trace.DatabaseSQLOnTxExec(tx.conn.trace, &ctx, stack.FunctionID(0), &tx.beginCtx, tx, query, true)
150+
onDone := trace.DatabaseSQLOnTxExec(tx.conn.trace, &ctx, stack.FunctionID(0), tx.txCtx, tx, query, true)
151151
defer func() {
152152
onDone(finalErr)
153153
}()
@@ -177,18 +177,18 @@ func (tx *tx) ExecContext(ctx context.Context, query string, args []driver.Named
177177
}
178178

179179
func (tx *tx) PrepareContext(ctx context.Context, query string) (_ driver.Stmt, finalErr error) {
180-
onDone := trace.DatabaseSQLOnTxPrepare(tx.conn.trace, &ctx, stack.FunctionID(0), &tx.beginCtx, tx, query)
180+
onDone := trace.DatabaseSQLOnTxPrepare(tx.conn.trace, &ctx, stack.FunctionID(0), &tx.txCtx, tx, query)
181181
defer func() {
182182
onDone(finalErr)
183183
}()
184184
if !tx.conn.isReady() {
185185
return nil, badconn.Map(xerrors.WithStackTrace(errNotReadyConn))
186186
}
187187
return &stmt{
188-
conn: tx.conn,
189-
processor: tx,
190-
prepareCtx: ctx,
191-
query: query,
192-
trace: tx.conn.trace,
188+
conn: tx.conn,
189+
processor: tx,
190+
stmtCtx: ctx,
191+
query: query,
192+
trace: tx.conn.trace,
193193
}, nil
194194
}

internal/xsql/tx_fake.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ func (tx *txFake) PrepareContext(ctx context.Context, query string) (_ driver.St
2727
return nil, badconn.Map(xerrors.WithStackTrace(errNotReadyConn))
2828
}
2929
return &stmt{
30-
conn: tx.conn,
31-
processor: tx,
32-
prepareCtx: ctx,
33-
query: query,
34-
trace: tx.conn.trace,
30+
conn: tx.conn,
31+
processor: tx,
32+
stmtCtx: ctx,
33+
query: query,
34+
trace: tx.conn.trace,
3535
}, nil
3636
}
3737

@@ -85,7 +85,7 @@ func (tx *txFake) QueryContext(ctx context.Context, query string, args []driver.
8585
rows driver.Rows, err error,
8686
) {
8787
onDone := trace.DatabaseSQLOnTxQuery(
88-
tx.conn.trace, &ctx, stack.FunctionID(0), &tx.ctx, tx, query, xcontext.IsIdempotent(ctx),
88+
tx.conn.trace, &ctx, stack.FunctionID(0), tx.ctx, tx, query, xcontext.IsIdempotent(ctx),
8989
)
9090
defer func() {
9191
onDone(err)
@@ -101,7 +101,7 @@ func (tx *txFake) ExecContext(ctx context.Context, query string, args []driver.N
101101
result driver.Result, err error,
102102
) {
103103
onDone := trace.DatabaseSQLOnTxExec(
104-
tx.conn.trace, &ctx, stack.FunctionID(0), &tx.ctx, tx, query, xcontext.IsIdempotent(ctx),
104+
tx.conn.trace, &ctx, stack.FunctionID(0), tx.ctx, tx, query, xcontext.IsIdempotent(ctx),
105105
)
106106
defer func() {
107107
onDone(err)

log/sql.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
206206
if d.Details()&trace.DatabaseSQLTxEvents == 0 {
207207
return nil
208208
}
209-
ctx := with(*info.TxContext, TRACE, "ydb", "database", "sql", "tx", "commit")
209+
ctx := with(*info.Context, TRACE, "ydb", "database", "sql", "tx", "commit")
210210
l.Log(ctx, "start")
211211
start := time.Now()
212212
return func(info trace.DatabaseSQLTxCommitDoneInfo) {
@@ -227,7 +227,7 @@ func internalDatabaseSQL(l *wrapper, d trace.Detailer) (t trace.DatabaseSQL) {
227227
if d.Details()&trace.DatabaseSQLTxEvents == 0 {
228228
return nil
229229
}
230-
ctx := with(*info.TxContext, TRACE, "ydb", "database", "sql", "tx", "rollback")
230+
ctx := with(*info.Context, TRACE, "ydb", "database", "sql", "tx", "rollback")
231231
l.Log(ctx, "start")
232232
start := time.Now()
233233
return func(info trace.DatabaseSQLTxRollbackDoneInfo) {

trace/sql.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ type (
156156
// Safe replacement of context are provided only inside callback function
157157
Context *context.Context
158158
Call call
159-
TxContext *context.Context
159+
TxContext context.Context
160160
Tx tableTransactionInfo
161161
Query string
162162

@@ -173,7 +173,7 @@ type (
173173
// Safe replacement of context are provided only inside callback function
174174
Context *context.Context
175175
Call call
176-
TxContext *context.Context
176+
TxContext context.Context
177177
Tx tableTransactionInfo
178178
Query string
179179

@@ -188,9 +188,9 @@ type (
188188
// Pointer to context provide replacement of context in trace callback function.
189189
// Warning: concurrent access to pointer on client side must be excluded.
190190
// Safe replacement of context are provided only inside callback function
191-
TxContext *context.Context
192-
Call call
193-
Tx tableTransactionInfo
191+
Context *context.Context
192+
Call call
193+
Tx tableTransactionInfo
194194
}
195195
DatabaseSQLTxCommitDoneInfo struct {
196196
Error error
@@ -200,9 +200,9 @@ type (
200200
// Pointer to context provide replacement of context in trace callback function.
201201
// Warning: concurrent access to pointer on client side must be excluded.
202202
// Safe replacement of context are provided only inside callback function
203-
TxContext *context.Context
204-
Call call
205-
Tx tableTransactionInfo
203+
Context *context.Context
204+
Call call
205+
Tx tableTransactionInfo
206206
}
207207
DatabaseSQLTxRollbackDoneInfo struct {
208208
Error error
@@ -221,7 +221,7 @@ type (
221221
// Safe replacement of context are provided only inside callback function
222222
Context *context.Context
223223
Call call
224-
StmtContext *context.Context
224+
StmtContext context.Context
225225
Query string
226226
}
227227
DatabaseSQLStmtQueryDoneInfo struct {
@@ -234,7 +234,7 @@ type (
234234
// Safe replacement of context are provided only inside callback function
235235
Context *context.Context
236236
Call call
237-
StmtContext *context.Context
237+
StmtContext context.Context
238238
Query string
239239
}
240240
DatabaseSQLStmtExecDoneInfo struct {

0 commit comments

Comments
 (0)