diff options
author | 2021-09-08 21:13:54 +0100 | |
---|---|---|
committer | 2021-09-08 21:13:54 +0100 | |
commit | 6a2d0d9508392425392738743fa4dd5b5d93bdb4 (patch) | |
tree | 2c076235c197acbb9080745fc79a4b41aaa5452e /vendor/github.com/uptrace/bun/query_delete.go | |
parent | update sqlite library -> v1.13.0 (diff) | |
parent | Merge pull request #195 from NyaaaWhatsUpDoc/update/bun-library (diff) | |
download | gotosocial-6a2d0d9508392425392738743fa4dd5b5d93bdb4.tar.xz |
Merge remote-tracking branch 'upstream/main' into update/sqlite-library
Signed-off-by: kim (grufwub) <grufwub@gmail.com>
Diffstat (limited to 'vendor/github.com/uptrace/bun/query_delete.go')
-rw-r--r-- | vendor/github.com/uptrace/bun/query_delete.go | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/vendor/github.com/uptrace/bun/query_delete.go b/vendor/github.com/uptrace/bun/query_delete.go index c0c5039c7..bcdf9c501 100644 --- a/vendor/github.com/uptrace/bun/query_delete.go +++ b/vendor/github.com/uptrace/bun/query_delete.go @@ -3,6 +3,7 @@ package bun import ( "context" "database/sql" + "time" "github.com/uptrace/bun/dialect/feature" "github.com/uptrace/bun/internal" @@ -135,15 +136,18 @@ func (q *DeleteQuery) AppendQuery(fmter schema.Formatter, b []byte) (_ []byte, e fmter = formatterWithModel(fmter, q) if q.isSoftDelete() { - if err := q.tableModel.updateSoftDeleteField(); err != nil { + now := time.Now() + + if err := q.tableModel.updateSoftDeleteField(now); err != nil { return nil, err } - upd := UpdateQuery{ + upd := &UpdateQuery{ whereBaseQuery: q.whereBaseQuery, returningQuery: q.returningQuery, } - upd.Column(q.table.SoftDeleteField.Name) + upd.Set(q.softDeleteSet(fmter, now)) + return upd.AppendQuery(fmter, b) } @@ -193,6 +197,18 @@ func (q *DeleteQuery) isSoftDelete() bool { return q.tableModel != nil && q.table.SoftDeleteField != nil && !q.flags.Has(forceDeleteFlag) } +func (q *DeleteQuery) softDeleteSet(fmter schema.Formatter, tm time.Time) string { + b := make([]byte, 0, 32) + if fmter.HasFeature(feature.UpdateMultiTable) { + b = append(b, q.table.SQLAlias...) + b = append(b, '.') + } + b = append(b, q.table.SoftDeleteField.SQLName...) + b = append(b, " = "...) + b = q.db.Dialect().Append(fmter, b, tm) + return internal.String(b) +} + //------------------------------------------------------------------------------ func (q *DeleteQuery) Exec(ctx context.Context, dest ...interface{}) (sql.Result, error) { |