Skip to content

Commit 1e26302

Browse files
authored
feat: support get prepare context (#3)
1 parent a848685 commit 1e26302

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

conn.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (s driver.Stmt,
9797
return st, err
9898
}
9999

100-
return &stmt{Stmt: st, StmtHook: c.ConnHook.(StmtHook), query: query}, nil
100+
return &stmt{Stmt: st, StmtHook: c.ConnHook.(StmtHook), query: query, prepareContext: ctx}, nil
101101
}
102102

103103
func (c *conn) BeginTx(ctx context.Context, opts driver.TxOptions) (dd driver.Tx, err error) {

stmt.go

+8
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,22 @@ var (
1111
_ driver.StmtQueryContext = (*stmt)(nil)
1212
)
1313

14+
type prepareContextKey struct{}
15+
16+
func PrepareContextFromContext(ctx context.Context) context.Context {
17+
return ctx.Value(prepareContextKey{}).(context.Context)
18+
}
19+
1420
type stmt struct {
1521
driver.Stmt
1622
query string
1723
StmtHook
24+
prepareContext context.Context
1825
}
1926

2027
func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (rows driver.Rows, err error) {
2128
query := s.query
29+
ctx = context.WithValue(ctx, prepareContextKey{}, s.prepareContext)
2230
ctx, args, err = s.BeforeStmtQueryContext(ctx, query, args, nil)
2331
defer func() {
2432
_, rows, err = s.AfterStmtQueryContext(ctx, query, args, rows, err)

0 commit comments

Comments
 (0)