Skip to content

Commit a6ace25

Browse files
authored
feat: support for modifying the returned data (#1)
1 parent 5399e23 commit a6ace25

File tree

4 files changed

+18
-18
lines changed

4 files changed

+18
-18
lines changed

conn.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,10 @@ type conn struct {
1818
ConnHook
1919
}
2020

21-
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (dd driver.Result, err error) {
21+
func (c *conn) ExecContext(ctx context.Context, query string, args []driver.NamedValue) (result driver.Result, err error) {
2222
ctx, err = c.BeforeExecContext(ctx, query, args)
2323
defer func() {
24-
_, err = c.AfterExecContext(ctx, query, args, err)
24+
_, result, err = c.AfterExecContext(ctx, query, args, result, err)
2525
}()
2626
if err != nil {
2727
return nil, err
@@ -47,10 +47,10 @@ func (c *conn) ExecContext(ctx context.Context, query string, args []driver.Name
4747
}
4848
}
4949

50-
func (c *conn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (dd driver.Rows, err error) {
50+
func (c *conn) QueryContext(ctx context.Context, query string, args []driver.NamedValue) (rows driver.Rows, err error) {
5151
ctx, err = c.BeforeQueryContext(ctx, query, args)
5252
defer func() {
53-
_, err = c.AfterQueryContext(ctx, query, args, err)
53+
_, rows, err = c.AfterQueryContext(ctx, query, args, rows, err)
5454
}()
5555
if err != nil {
5656
return
@@ -77,10 +77,10 @@ func (c *conn) QueryContext(ctx context.Context, query string, args []driver.Nam
7777
}
7878
}
7979

80-
func (c *conn) PrepareContext(ctx context.Context, query string) (dd driver.Stmt, err error) {
80+
func (c *conn) PrepareContext(ctx context.Context, query string) (s driver.Stmt, err error) {
8181
ctx, err = c.BeforePrepareContext(ctx, query)
8282
defer func() {
83-
_, err = c.AfterPrepareContext(ctx, query, err)
83+
_, s, err = c.AfterPrepareContext(ctx, query, s, err)
8484
}()
8585
if err != nil {
8686
return nil, err
@@ -103,7 +103,7 @@ func (c *conn) PrepareContext(ctx context.Context, query string) (dd driver.Stmt
103103
func (c *conn) BeginTx(ctx context.Context, opts driver.TxOptions) (dd driver.Tx, err error) {
104104
ctx, err = c.BeforeBeginTx(ctx, opts)
105105
defer func() {
106-
_, err = c.AfterBeginTx(ctx, opts, err)
106+
_, dd, err = c.AfterBeginTx(ctx, opts, dd, err)
107107
}()
108108
if err != nil {
109109
return nil, err

connector.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ type connector struct {
1212
ConnectorHook
1313
}
1414

15-
func (c *connector) Connect(ctx context.Context) (dd driver.Conn, err error) {
15+
func (c *connector) Connect(ctx context.Context) (dc driver.Conn, err error) {
1616
ctx, err = c.BeforeConnect(ctx)
1717
defer func() {
18-
_, err = c.AfterConnect(ctx, err)
18+
_, dc, err = c.AfterConnect(ctx, dc, err)
1919
}()
2020
if err != nil {
2121
return nil, err

hook.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,18 @@ type Hook interface {
1414

1515
type ConnHook interface {
1616
BeforeExecContext(ctx context.Context, query string, args []driver.NamedValue) (context.Context, error)
17-
AfterExecContext(ctx context.Context, query string, args []driver.NamedValue, err error) (context.Context, error)
17+
AfterExecContext(ctx context.Context, query string, args []driver.NamedValue, r driver.Result, err error) (context.Context, driver.Result, error)
1818
BeforeBeginTx(ctx context.Context, opts driver.TxOptions) (context.Context, error)
19-
AfterBeginTx(ctx context.Context, opts driver.TxOptions, err error) (context.Context, error)
19+
AfterBeginTx(ctx context.Context, opts driver.TxOptions, dd driver.Tx, err error) (context.Context, driver.Tx, error)
2020
BeforeQueryContext(ctx context.Context, query string, args []driver.NamedValue) (context.Context, error)
21-
AfterQueryContext(ctx context.Context, query string, args []driver.NamedValue, err error) (context.Context, error)
21+
AfterQueryContext(ctx context.Context, query string, args []driver.NamedValue, rows driver.Rows, err error) (context.Context, driver.Rows, error)
2222
BeforePrepareContext(ctx context.Context, query string) (context.Context, error)
23-
AfterPrepareContext(ctx context.Context, query string, err error) (context.Context, error)
23+
AfterPrepareContext(ctx context.Context, query string, s driver.Stmt, err error) (context.Context, driver.Stmt, error)
2424
}
2525

2626
type ConnectorHook interface {
2727
BeforeConnect(ctx context.Context) (context.Context, error)
28-
AfterConnect(ctx context.Context, err error) (context.Context, error)
28+
AfterConnect(ctx context.Context, dc driver.Conn, err error) (context.Context, driver.Conn, error)
2929
}
3030

3131
type TxHook interface {
@@ -37,7 +37,7 @@ type TxHook interface {
3737

3838
type StmtHook interface {
3939
BeforeStmtQueryContext(ctx context.Context, query string, args []driver.NamedValue) (context.Context, error)
40-
AfterStmtQueryContext(ctx context.Context, query string, args []driver.NamedValue, err error) (context.Context, error)
40+
AfterStmtQueryContext(ctx context.Context, query string, args []driver.NamedValue, rows driver.Rows, err error) (context.Context, driver.Rows, error)
4141
BeforeStmtExecContext(ctx context.Context, query string, args []driver.NamedValue) (context.Context, error)
42-
AfterStmtExecContext(ctx context.Context, query string, args []driver.NamedValue, err error) (context.Context, error)
42+
AfterStmtExecContext(ctx context.Context, query string, args []driver.NamedValue, r driver.Result, err error) (context.Context, driver.Result, error)
4343
}

stmt.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type stmt struct {
2020
func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (rows driver.Rows, err error) {
2121
ctx, err = s.BeforeStmtQueryContext(ctx, s.query, args)
2222
defer func() {
23-
_, err = s.AfterStmtQueryContext(ctx, s.query, args, err)
23+
_, rows, err = s.AfterStmtQueryContext(ctx, s.query, args, rows, err)
2424
}()
2525
if err != nil {
2626
return nil, err
@@ -46,7 +46,7 @@ func (s *stmt) QueryContext(ctx context.Context, args []driver.NamedValue) (rows
4646
func (s *stmt) ExecContext(ctx context.Context, args []driver.NamedValue) (r driver.Result, err error) {
4747
ctx, err = s.BeforeStmtExecContext(ctx, s.query, args)
4848
defer func() {
49-
_, err = s.AfterStmtExecContext(ctx, s.query, args, err)
49+
_, r, err = s.AfterStmtExecContext(ctx, s.query, args, r, err)
5050
}()
5151
if err != nil {
5252
return nil, err

0 commit comments

Comments
 (0)