Skip to content

Commit

Permalink
For nullable columns, store nil values as NULL (go-xorm#531)
Browse files Browse the repository at this point in the history
Merge branch 'master' into jcsalem/fix/nil_ptr_is_nullable

fix bug when buffersize with iterate (go-xorm#941)

Merge branch 'master' into lunny/fix_buffer_iterate

Exclude schema from index name (#1505)

Merge branch 'master' into fix-schema-idx

SetExpr support more go types (#1499)

Improve tests

SetExpr support more go types

fix vet

fix drone lint

remove go1.10 test on drone

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1499

fix vet

fix drone lint

remove go1.10 test on drone

Exclude schema from the index name

Co-authored-by: Guillermo Prandi <guillep2k@users.noreply.github.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/1505

fix test

fix bug

fix bug when buffersize with iterate

SetExpr support more go types (#1499)

Improve tests

SetExpr support more go types

fix vet

fix drone lint

remove go1.10 test on drone

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1499

fix vet

fix drone lint

remove go1.10 test on drone

Fix update with Alias (go-xorm#1455)

Co-authored-by: Guillermo Prandi <guillep2k@noreply.gitea.io>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/941

fix update map with version (go-xorm#1448)

fix test

fix update map with version

SetExpr support more go types (#1499)

Improve tests

SetExpr support more go types

fix vet

fix drone lint

remove go1.10 test on drone

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1499

fix vet

fix drone lint

remove go1.10 test on drone

Fix update with Alias (go-xorm#1455)

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1448

Exclude schema from index name (#1505)

Merge branch 'master' into fix-schema-idx

SetExpr support more go types (#1499)

Improve tests

SetExpr support more go types

fix vet

fix drone lint

remove go1.10 test on drone

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1499

fix vet

fix drone lint

remove go1.10 test on drone

Exclude schema from the index name

Co-authored-by: Guillermo Prandi <guillep2k@users.noreply.github.com>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/1505

SetExpr support more go types (#1499)

Improve tests

SetExpr support more go types

fix vet

fix drone lint

remove go1.10 test on drone

Reviewed-on: https://gitea.com/xorm/xorm/pulls/1499

For nullable columns, store nil values as NULL

fix vet

fix drone lint

remove go1.10 test on drone

Fix update with Alias (go-xorm#1455)

Improve ci tests (#1477)

Rewrite Engine.QuoteTo() to accept multi-part identifiers (#1476)

Support local sql log (go-xorm#1338)

Fix go mod and update version (go-xorm#1460)

Move github.com/go-xorm/xorm to xorm.io/xorm (go-xorm#1459)

add support custom type Nullfloat64 (go-xorm#1450)

fix bug when query map condtion with no quote (go-xorm#1449)

Don't warn when bool column default is 1 but not true (go-xorm#1447)

* don't warn when bool column default is 1 but not true

* fix default case sensitive

Fix sync2 with custom table name (go-xorm#1445)

* fix sync2 with custom table name

* fix bug on postgres

* fix bug on postgres

fix bug when update with setexpr (go-xorm#1446)

add tidb tests on drone ci (go-xorm#1444)

improve sync2 (go-xorm#1443)

Fix wrong dbmetas (go-xorm#1442)

* add tests for db metas

* add more tests

* fix bug on mssql

Fix default value parse bugs (go-xorm#1437)

* fix default value

* fix default value tags

* fix postgres default

* fix default on postgres

* fix default on postgres

* fix mssql default

fix arg conversion (go-xorm#1441)

* fix arg conversion

* fix bugs

* fix bug on postgres

* use traditional positional parameters on insert into select

* remove unnecessary tests

upgrade core (go-xorm#1440)

add tests (go-xorm#1439)

add go1.13 tests on drone (go-xorm#1416)

Fix bug on insert where (go-xorm#1436)

* fix bug on insert where

* fix bug

* fix lint

fix bug when insert multiple slices with customize table name (go-xorm#1433)

* fix bug when insert multiple slices with customize table name

* fix tests on mssql

* fix tests

fix insert where with bool bug on mssql (go-xorm#1432)

fix setexpr missing big quotes (go-xorm#1431)

* fix setexpr missing big quotes

* fix tests

* fix tests

Add support subquery on SetExpr (go-xorm#1428)

* add support subquery on SetExpr

* fix tests

fix go mod (go-xorm#1427)

fix tests (go-xorm#1429)

Use strings.Builder instead of builder.StringBuilder (go-xorm#1417)

* use strings.Builder instead of builder.StringBuilder

* fix dependency

* fix dependency

Remove unuse get cols code (go-xorm#1413)

Add mssql ci test (go-xorm#1410)

* add mssql ci test

* fix drone test

Add insert select where support (go-xorm#1401)

Use drone new format (go-xorm#1388)

* use drone new format
fix get customize type bug (go-xorm#1382)

fix bugs (go-xorm#1375)

update drone (go-xorm#1374)

Add tests for get var (go-xorm#1305)

* add test for SQL get
* fix tests

fix error when get null var (go-xorm#890)

* fix error when get null var
* add support get for null var
* fix bug

Remove quotestr totally (go-xorm#1366)

* remove QuoteStr() totally

* update xorm.core -> v0.7.0

* update dialect Quote

remove QuoteStr() usage in dialects (go-xorm#1364)

document of FindAndCount() (go-xorm#1365)

remove QuoteStr() usage (go-xorm#1360)

make sure timeout in context timeout t...

Co-authored-by: Guillermo Prandi <guillep2k@noreply.gitea.io>
Co-authored-by: Jim Salem <jim@komand.com>
Co-authored-by: Guillermo Prandi <guillep2k@noreply@gitea.io>
Co-authored-by: yudppp <yu.d.ppp@gmail.com>
Co-authored-by: BetaCat <outman99@hotmail.com>
Reviewed-on: https://gitea.com/xorm/xorm/pulls/531
  • Loading branch information
6 people committed Jan 20, 2020
1 parent 43b364c commit 062d996
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
11 changes: 11 additions & 0 deletions helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,17 @@ func isZero(k interface{}) bool {
return false
}

func isZeroValue(v reflect.Value) bool {
if isZero(v.Interface()) {
return true
}
switch v.Kind() {
case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice:
return v.IsNil()
}
return false
}

func isStructZero(v reflect.Value) bool {
if !v.IsValid() {
return true
Expand Down
2 changes: 1 addition & 1 deletion session_insert.go
Original file line number Diff line number Diff line change
Expand Up @@ -674,7 +674,7 @@ func (session *Session) genInsertColumns(bean interface{}) ([]string, []interfac

// !evalphobia! set fieldValue as nil when column is nullable and zero-value
if _, ok := getFlagForColumn(session.statement.nullableMap, col); ok {
if col.Nullable && isZero(fieldValue.Interface()) {
if col.Nullable && isZeroValue(fieldValue) {
var nilValue *int
fieldValue = reflect.ValueOf(nilValue)
}
Expand Down
2 changes: 1 addition & 1 deletion session_update.go
Original file line number Diff line number Diff line change
Expand Up @@ -517,7 +517,7 @@ func (session *Session) genUpdateColumns(bean interface{}) ([]string, []interfac

// !evalphobia! set fieldValue as nil when column is nullable and zero-value
if _, ok := getFlagForColumn(session.statement.nullableMap, col); ok {
if col.Nullable && isZero(fieldValue.Interface()) {
if col.Nullable && isZeroValue(fieldValue) {
var nilValue *int
fieldValue = reflect.ValueOf(nilValue)
}
Expand Down

0 comments on commit 062d996

Please sign in to comment.