diff options
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_delete.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/query_delete.go | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/vendor/github.com/uptrace/bun/query_delete.go b/vendor/github.com/uptrace/bun/query_delete.go index 83d2dd405..c5f3d7103 100644 --- a/vendor/github.com/uptrace/bun/query_delete.go +++ b/vendor/github.com/uptrace/bun/query_delete.go @@ -190,7 +190,8 @@ func (q *DeleteQuery) AppendQuery(fmter schema.Formatter, b []byte) (_ []byte, e return nil, err } - if len(q.returning) > 0 { + if q.hasFeature(feature.Returning) && q.hasReturning() { + b = append(b, " RETURNING "...) b, err = q.appendReturning(fmter, b) if err != nil { return nil, err @@ -285,3 +286,48 @@ func (q *DeleteQuery) afterDeleteHook(ctx context.Context) error { } return nil } + +//------------------------------------------------------------------------------ +type deleteQueryBuilder struct { + *DeleteQuery +} + +func (q *deleteQueryBuilder) WhereGroup(sep string, fn func(QueryBuilder) QueryBuilder) QueryBuilder { + q.DeleteQuery = q.DeleteQuery.WhereGroup(sep, func(qs *DeleteQuery) *DeleteQuery { + return fn(q).(*deleteQueryBuilder).DeleteQuery + }) + return q +} + +func (q *deleteQueryBuilder) Where(query string, args ...interface{}) QueryBuilder { + q.DeleteQuery.Where(query, args...) + return q +} + +func (q *deleteQueryBuilder) WhereOr(query string, args ...interface{}) QueryBuilder { + q.DeleteQuery.WhereOr(query, args...) + return q +} + +func (q *deleteQueryBuilder) WhereDeleted() QueryBuilder { + q.DeleteQuery.WhereDeleted() + return q +} + +func (q *deleteQueryBuilder) WhereAllWithDeleted() QueryBuilder { + q.DeleteQuery.WhereAllWithDeleted() + return q +} + +func (q *deleteQueryBuilder) WherePK(cols ...string) QueryBuilder { + q.DeleteQuery.WherePK(cols...) + return q +} + +func (q *deleteQueryBuilder) Unwrap() interface{} { + return q.DeleteQuery +} + +func (q *DeleteQuery) Query() QueryBuilder { + return &deleteQueryBuilder{q} +} |