diff --git a/delete.go b/delete.go index 07f6af08..4f1bd878 100644 --- a/delete.go +++ b/delete.go @@ -63,13 +63,12 @@ func (session *Session) delete(beans []any, mustHaveConditions bool) (int64, err table := session.statement.RefTable realSQLWriter := builder.NewWriter() - deleteSQLWriter := builder.NewWriter() - if err := session.statement.WriteDelete(realSQLWriter, deleteSQLWriter, session.engine.nowTime); err != nil { + if err := session.statement.WriteDelete(realSQLWriter, session.engine.nowTime); err != nil { return 0, err } - if session.statement.GetUnscoped() || table == nil || table.DeletedColumn() == nil { // tag "deleted" is disabled - } else { + // if tag "deleted" is enabled, then set the field as deleted value + if !session.statement.GetUnscoped() && table != nil && table.DeletedColumn() != nil { deletedColumn := table.DeletedColumn() _, t, err := session.engine.nowTime(deletedColumn) if err != nil { diff --git a/insert.go b/insert.go index e437bea3..13261b0e 100644 --- a/insert.go +++ b/insert.go @@ -23,7 +23,7 @@ import ( var ErrNoElementsOnSlice = errors.New("no element on slice when insert") // ErrPtrSliceType represents a type error -var ErrPtrSliceType = errors.New("A point to a slice is needed") +var ErrPtrSliceType = errors.New("a point to a slice is needed") // Insert insert one or more beans func (session *Session) Insert(beans ...any) (int64, error) { diff --git a/internal/statements/delete.go b/internal/statements/delete.go index 1b5f1fc8..148efd6d 100644 --- a/internal/statements/delete.go +++ b/internal/statements/delete.go @@ -84,10 +84,11 @@ func (statement *Statement) writeOrderCond(orderCondWriter *builder.BytesWriter, } } -func (statement *Statement) WriteDelete(realSQLWriter, deleteSQLWriter *builder.BytesWriter, nowTime func(*schemas.Column) (any, time.Time, error)) error { +func (statement *Statement) WriteDelete(realSQLWriter *builder.BytesWriter, nowTime func(*schemas.Column) (any, time.Time, error)) error { tableNameNoQuote := statement.TableName() tableName := statement.dialect.Quoter().Quote(tableNameNoQuote) table := statement.RefTable + deleteSQLWriter := builder.NewWriter() if _, err := fmt.Fprint(deleteSQLWriter, "DELETE FROM ", tableName); err != nil { return err }