diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_raw.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/query_raw.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/vendor/github.com/uptrace/bun/query_raw.go b/vendor/github.com/uptrace/bun/query_raw.go new file mode 100644 index 000000000..30ae77508 --- /dev/null +++ b/vendor/github.com/uptrace/bun/query_raw.go @@ -0,0 +1,48 @@ +package bun + +import ( + "context" + + "github.com/uptrace/bun/schema" +) + +type RawQuery struct { + baseQuery + + query string + args []interface{} +} + +func (db *DB) Raw(query string, args ...interface{}) *RawQuery { + return &RawQuery{ + baseQuery: baseQuery{ + db: db, + conn: db.DB, + }, + query: query, + args: args, + } +} + +func (q *RawQuery) Scan(ctx context.Context, dest ...interface{}) error { + if q.err != nil { + return q.err + } + + model, err := q.getModel(dest) + if err != nil { + return err + } + + query := q.db.format(q.query, q.args) + _, err = q.scan(ctx, q, query, model, true) + return err +} + +func (q *RawQuery) AppendQuery(fmter schema.Formatter, b []byte) ([]byte, error) { + return fmter.AppendQuery(b, q.query, q.args...), nil +} + +func (q *RawQuery) Operation() string { + return "SELECT" +} |