Fix #929 #1936

Merged
lunny merged 7 commits from lunny/insert_deleted into master 2021-07-03 12:26:50 +00:00
3 changed files with 14 additions and 2 deletions
Showing only changes of commit 02860a6146 - Show all commits

View File

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

View File

@ -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
}
}

View File

@ -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
}