update bun library -> v1.0.4

Signed-off-by: kim (grufwub) <grufwub@gmail.com>
This commit is contained in:
kim (grufwub)
2021-09-08 20:05:26 +01:00
parent 2b14b20802
commit bdcc090851
87 changed files with 538 additions and 503 deletions

View File

@ -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) {