in xray/sql_context.go [607:638]
func (stmt *driverStmt) QueryContext(ctx context.Context, args []driver.NamedValue) (driver.Rows, error) {
var result driver.Rows
var err error
if queryCtx, ok := stmt.Stmt.(driver.StmtQueryContext); ok {
err = Capture(ctx, stmt.attr.dbname+stmt.attr.host, func(ctx context.Context) error {
stmt.populate(ctx)
var err error
result, err = queryCtx.QueryContext(ctx, args)
return err
})
} else {
select {
default:
case <-ctx.Done():
return nil, ctx.Err()
}
dargs, err0 := namedValuesToValues(args)
if err0 != nil {
return nil, err0
}
err = Capture(ctx, stmt.attr.dbname+stmt.attr.host, func(ctx context.Context) error {
stmt.populate(ctx)
var err error
result, err = stmt.Stmt.Query(dargs)
return err
})
}
if err != nil {
return nil, err
}
return result, nil
}