| 187 | } |
| 188 | |
| 189 | func (b *sqlBuilder) QueryRowContext(ctx context.Context, query interface{}, args ...interface{}) (*sql.Row, error) { |
| 190 | switch q := query.(type) { |
| 191 | case *exql.Statement: |
| 192 | return b.sess.StatementQueryRow(ctx, q, args...) |
| 193 | case string: |
| 194 | return b.sess.StatementQueryRow(ctx, exql.RawSQL(q), args...) |
| 195 | case *adapter.RawExpr: |
| 196 | return b.QueryRowContext(ctx, q.Raw(), q.Arguments()...) |
| 197 | default: |
| 198 | return nil, fmt.Errorf("unsupported query type %T", query) |
| 199 | } |
| 200 | } |
| 201 | |
| 202 | func (b *sqlBuilder) SelectFrom(table ...interface{}) db.Selector { |
| 203 | qs := &selector{ |