Fix #929 #1936
|
@ -1028,10 +1028,16 @@ func TestInsertIntSlice(t *testing.T) {
|
|||
func TestInsertDeleted(t *testing.T) {
|
||||
assert.NoError(t, PrepareEngine())
|
||||
|
||||
type InsertDeletedStruct struct {
|
||||
type InsertDeletedStructNotRight struct {
|
||||
ID uint64 `xorm:"'ID' pk autoincr"`
|
||||
DeletedAt time.Time `xorm:"'DELETED_AT' deleted notnull"`
|
||||
}
|
||||
assert.Error(t, testEngine.Sync2(new(InsertDeletedStructNotRight)))
|
||||
|
||||
type InsertDeletedStruct struct {
|
||||
ID uint64 `xorm:"'ID' pk autoincr"`
|
||||
DeletedAt time.Time `xorm:"'DELETED_AT' deleted"`
|
||||
}
|
||||
|
||||
assert.NoError(t, testEngine.Sync2(new(InsertDeletedStruct)))
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ func (statement *Statement) writeInsertOutput(buf *strings.Builder, table *schem
|
|||
if _, err := buf.WriteString(" OUTPUT Inserted."); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := buf.WriteString(table.AutoIncrement); err != nil {
|
||||
if err := statement.dialect.Quoter().QuoteTo(buf, table.AutoIncrement); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
@ -296,5 +296,11 @@ func (parser *Parser) Parse(v reflect.Value) (*schemas.Table, error) {
|
|||
table.AddColumn(col)
|
||||
} // end for
|
||||
|
||||
deletedColumn := table.DeletedColumn()
|
||||
// check columns
|
||||
if deletedColumn != nil && !deletedColumn.Nullable {
|
||||
return nil, errors.New("deleted column should be allowed null")
|
||||
}
|
||||
|
||||
return table, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user