summaryrefslogtreecommitdiff
path: root/vendor/github.com/uptrace/bun/query_raw.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-05-12 14:33:40 +0200
committerLibravatar GitHub <noreply@github.com>2023-05-12 14:33:40 +0200
commitec325fee141c1e9757144a0a4094061b56839b78 (patch)
tree2948ab4ef5702cc8478ab2be841340b946bdb867 /vendor/github.com/uptrace/bun/query_raw.go
parent[frogend/bugfix] fix dynamicSpoiler elements (#1771) (diff)
downloadgotosocial-ec325fee141c1e9757144a0a4094061b56839b78.tar.xz
[chore] Update a bunch of database dependencies (#1772)
* [chore] Update a bunch of database dependencies * fix lil thing
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_raw.go')
-rw-r--r--vendor/github.com/uptrace/bun/query_raw.go40
1 files changed, 34 insertions, 6 deletions
diff --git a/vendor/github.com/uptrace/bun/query_raw.go b/vendor/github.com/uptrace/bun/query_raw.go
index 7afa4d536..fda088a7c 100644
--- a/vendor/github.com/uptrace/bun/query_raw.go
+++ b/vendor/github.com/uptrace/bun/query_raw.go
@@ -2,6 +2,7 @@ package bun
import (
"context"
+ "database/sql"
"github.com/uptrace/bun/schema"
)
@@ -46,19 +47,46 @@ func (q *RawQuery) Err(err error) *RawQuery {
return q
}
+func (q *RawQuery) Exec(ctx context.Context, dest ...interface{}) (sql.Result, error) {
+ return q.scanOrExec(ctx, dest, len(dest) > 0)
+}
+
func (q *RawQuery) Scan(ctx context.Context, dest ...interface{}) error {
+ _, err := q.scanOrExec(ctx, dest, true)
+ return err
+}
+
+func (q *RawQuery) scanOrExec(
+ ctx context.Context, dest []interface{}, hasDest bool,
+) (sql.Result, error) {
if q.err != nil {
- return q.err
+ return nil, q.err
}
- model, err := q.getModel(dest)
- if err != nil {
- return err
+ var model Model
+ var err error
+
+ if hasDest {
+ model, err = q.getModel(dest)
+ if err != nil {
+ return nil, err
+ }
}
query := q.db.format(q.query, q.args)
- _, err = q.scan(ctx, q, query, model, true)
- return err
+ var res sql.Result
+
+ if hasDest {
+ res, err = q.scan(ctx, q, query, model, hasDest)
+ } else {
+ res, err = q.exec(ctx, q, query)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+
+ return res, nil
}
func (q *RawQuery) AppendQuery(fmter schema.Formatter, b []byte) ([]byte, error) {