Fix int time deleted bug
This commit is contained in:
parent
35b2813796
commit
d6e31ce715
|
@ -92,10 +92,11 @@ func (engine *Engine) BufferSize(size int) *Session {
|
|||
|
||||
// CondDeleted returns the conditions whether a record is soft deleted.
|
||||
func (engine *Engine) CondDeleted(colName string) builder.Cond {
|
||||
cond := builder.IsNull{colName}.Or(builder.Eq{colName: 0})
|
||||
if engine.dialect.DBType() == core.MSSQL {
|
||||
return builder.IsNull{colName}
|
||||
return cond
|
||||
}
|
||||
return builder.IsNull{colName}.Or(builder.Eq{colName: zeroTime1})
|
||||
return cond.Or(builder.Eq{colName: zeroTime1})
|
||||
}
|
||||
|
||||
// ShowSQL show SQL statement or not on logger if log level is great than INFO
|
||||
|
|
37
time_test.go
37
time_test.go
|
@ -477,3 +477,40 @@ func TestCustomTimeUserDeletedDiffLoc(t *testing.T) {
|
|||
assert.EqualValues(t, formatTime(time.Time(user3.DeletedAt)), formatTime(time.Time(user4.DeletedAt)))
|
||||
fmt.Println("user3", user3.DeletedAt, user4.DeletedAt)
|
||||
}
|
||||
|
||||
func TestDeletedInt64(t *testing.T) {
|
||||
assert.NoError(t, prepareEngine())
|
||||
|
||||
type DeletedInt64Struct struct {
|
||||
Id int64
|
||||
Deleted int64 `xorm:"deleted default(0) notnull"` // timestamp
|
||||
}
|
||||
|
||||
assertSync(t, new(DeletedInt64Struct))
|
||||
|
||||
var d1 DeletedInt64Struct
|
||||
cnt, err := testEngine.Insert(&d1)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
var d2 DeletedInt64Struct
|
||||
has, err := testEngine.ID(d1.Id).Get(&d2)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
assert.EqualValues(t, d1, d2)
|
||||
|
||||
cnt, err = testEngine.ID(d1.Id).NoAutoCondition().Delete(&d1)
|
||||
assert.NoError(t, err)
|
||||
assert.EqualValues(t, 1, cnt)
|
||||
|
||||
var d3 DeletedInt64Struct
|
||||
has, err = testEngine.ID(d1.Id).Get(&d3)
|
||||
assert.NoError(t, err)
|
||||
assert.False(t, has)
|
||||
|
||||
var d4 DeletedInt64Struct
|
||||
has, err = testEngine.ID(d1.Id).Unscoped().Get(&d4)
|
||||
assert.NoError(t, err)
|
||||
assert.True(t, has)
|
||||
assert.EqualValues(t, d1, d4)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue