From 02860a6146155dc6f7ad21bdb3a5662517b58c46 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 14 Jun 2021 17:47:29 +0800 Subject: [PATCH] Fix mssql test --- integrations/session_insert_test.go | 8 +++++++- internal/statements/insert.go | 2 +- tags/parser.go | 6 ++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/integrations/session_insert_test.go b/integrations/session_insert_test.go index ec1dd443..38743365 100644 --- a/integrations/session_insert_test.go +++ b/integrations/session_insert_test.go @@ -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))) diff --git a/internal/statements/insert.go b/internal/statements/insert.go index 367dbdc9..4e43c5bd 100644 --- a/internal/statements/insert.go +++ b/internal/statements/insert.go @@ -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 } } diff --git a/tags/parser.go b/tags/parser.go index d701e316..ffff74a2 100644 --- a/tags/parser.go +++ b/tags/parser.go @@ -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 }