| 115 | } |
| 116 | |
| 117 | func (d *impersonatedDB) QueryContext(ctx context.Context, query string, args []driver.NamedValue) ( |
| 118 | rows driver.Rows, err error) { |
| 119 | resp, err := d.sendQuery(query, args, types.ReadQuery) |
| 120 | if err != nil { |
| 121 | err = errors.Wrapf(err, "send query failed") |
| 122 | return |
| 123 | } |
| 124 | |
| 125 | rows = &impersonatedRows{ |
| 126 | columns: resp.Payload.Columns, |
| 127 | types: resp.Payload.DeclTypes, |
| 128 | data: resp.Payload.Rows, |
| 129 | } |
| 130 | |
| 131 | return |
| 132 | } |
| 133 | |
| 134 | func (d *impersonatedDB) sendQuery(query string, args []driver.NamedValue, queryType types.QueryType) ( |
| 135 | resp *types.Response, err error) { |