Cr
06e174e24d
fix: embedded default value ( #5540 )
2022-07-25 14:10:30 +08:00
wws
3e6ab99043
fix:serializer contain field panic ( #5461 )
2022-06-25 16:32:47 +08:00
Cr
8d45714628
fix: reset null value in slice ( #5417 )
...
* fix: reset null value in slice
* fix: can not set field in-place in join
2022-06-14 13:48:50 +08:00
aelmel
3643f856a3
check for pointer to pointer value ( #5278 )
...
* check for pointer to pointer value
* revert to Ptr
Co-authored-by: Alexei Melnic <alexei.melnic@meliora.xyz>
2022-04-24 09:10:36 +08:00
Jinzhu
41bef26f13
Remove shared sync pool for Scanner compatibility
2022-04-11 21:37:44 +08:00
Jinzhu
9144969c83
Allow to use tag to disable auto create/update time
2022-04-02 17:17:47 +08:00
Jinzhu
f92e6747cb
Handle field set value error
2022-03-23 17:24:25 +08:00
Jinzhu
0097b39a77
Should ignore error when parsing default value for time, close #5176
2022-03-20 08:55:08 +08:00
ag9920
3c00980e01
fix: serializer use default valueOf in assignInterfacesToValue, close #5168
...
commit 58e1b2bffbc216f2862d040fb545a8a486e473b6
Author: Jinzhu <wosmvp@gmail.com>
Date: Fri Mar 18 17:06:43 2022 +0800
Refactor #5168
commit fb9233011d
Author: ag9920 <alexgong7@outlook.com>
Date: Thu Mar 17 21:23:28 2022 +0800
fix: serializer use default valueOf in assignInterfacesToValue
2022-03-18 17:12:17 +08:00
Jinzhu
63ac66b569
Support default tag for time.Time
2022-03-17 11:34:27 +08:00
Jinzhu
530b0a12b4
Add fast path for ValueOf, ReflectValueOf
2022-02-27 22:16:31 +08:00
Jinzhu
b1201fce4e
Fix update with customized time type, close #5101
2022-02-23 17:48:26 +08:00
Jinzhu
39d84cba5f
Add serializer support ( #5078 )
...
* Update context
* Update GormFieldValuer
* Add Serializer
* Add Serializer Interface
* Refactor gorm field
* Refactor setter, valuer
* Add sync.Pool
* Fix test
* Add pool manager
* Fix pool manager
* Add poolInitializer
* Add Serializer Scan support
* Add Serializer Value method
* Add serializer test
* Finish Serializer
* Fix JSONSerializer for postgres
* Fix JSONSerializer for sqlserver
* Test serializer tag
* Add unixtime serializer
* Update go.mod
2022-02-19 17:02:53 +08:00
piyongcai
a0d6ff1fea
time.Time, []byte type add alias support. (rebase master) ( #4992 )
...
* time.Time, []byte type add alias support
* reformat
2022-01-12 13:11:40 +08:00
kinggo
b47cf57f5e
ci: add gofumpt check in reviewdog ( #4973 )
2022-01-06 15:02:53 +08:00
piyongcai
380cc64ff5
fix type alias AutoMigrate bug(Add Test Case) ( #4888 )
...
* fix type alias AutoMigrate bug. eg
```go
package main
type IDer interface{ GetID() int64 }
// ID will add some method to implement some interface eg: GetID
type ID int64
func (z ID) GetID() int64 { return int64(z) }
type Test struct {
ID
Code string `gorm:"size:50"`
Name string `gorm:"size:50"`
}
func main() {
db, err := gorm.Open(postgres.New(postgres.Config{
DSN: `dsn`,
PreferSimpleProtocol: false,
}), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
SkipDefaultTransaction: true,
})
if err != nil {
log.Fatal(err)
}
if err = db.AutoMigrate(&Test{}); err != nil {
// invalid embedded struct for Test's field ID, should be struct, but got main.ID
log.Fatal(err)
}
}
```
* fix type alias AutoMigrate bug. eg
```go
package main
type IDer interface{ GetID() int64 }
// ID will add some method to implement some interface eg: GetID
type ID int64
func (z ID) GetID() int64 { return int64(z) }
type Test struct {
ID
Code string `gorm:"size:50"`
Name string `gorm:"size:50"`
}
func main() {
db, err := gorm.Open(postgres.New(postgres.Config{
DSN: `dsn`,
PreferSimpleProtocol: false,
}), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
SkipDefaultTransaction: true,
})
if err != nil {
log.Fatal(err)
}
if err = db.AutoMigrate(&Test{}); err != nil {
// invalid embedded struct for Test's field ID, should be struct, but got main.ID
log.Fatal(err)
}
}
```
* Add typealis test.
* try to fix golangci-lint
2021-12-10 17:45:36 +08:00
Jinzhu
da16a8aac6
Update updated_at when upserting with Create OnConflict
2021-09-17 15:29:49 +08:00
daheige
a70254609d
optimize setupValuerAndSetter func
2021-07-14 22:03:17 +08:00
heige
50e85e14d4
Code optimize ( #4415 )
...
* optimize gormSourceDir replace
* fmt.Errorf adjust and Optimize for-break
* strings trim
* feat: avoid using the same name field and if..else optimization adjustment
* optimization callbacks/create.go Create func if...else logic
* fix: callbacks/create.go Create func
* fix FileWithLineNum func and add gormSourceDir unit test
* remove debug print and utils_filenum_test.go
2021-06-10 10:21:28 +08:00
heige
5555b010dc
feat: Optimal value type acquisition for v ( #4278 )
2021-04-13 09:41:30 +08:00
gavwu
8cfa9d98f0
Update field.go ( #4228 )
...
seems like the `if-else` branch do the same thing, so remove it
2021-04-02 09:56:38 +08:00
yrong1997
2ba612e805
Add field tag to ignore migration ( #4028 )
...
* Add field tag to ignore migration
* Fix null value with space
* refactor migration tag
2021-02-09 16:03:02 +08:00
Jinzhu
79864af9ff
Allow customize auto increment increment
2020-12-30 11:16:40 +08:00
Jinzhu
6950007d6a
Fix failed to parse relations when using goroutinue, close #3790
...
commit ee0ec43e8dfa85c1c1a562c2d0d47776cf8abd92
Author: Jinzhu <wosmvp@gmail.com>
Date: Fri Nov 27 14:31:57 2020 +0800
Fix failed to parse relations when using goroutinue, close #3790
commit 590e73ff95
Author: rokeyzhao <rokeyzhao@tencent.com>
Date: Thu Nov 26 20:27:55 2020 +0800
test: no cache preload in goroutine
2020-11-27 14:32:20 +08:00
Jinzhu
cb591a7129
Fix panic when using FirstOrCreate with soft delete, close #3671
2020-10-23 18:40:05 +08:00
Jinzhu
3d846957cd
Compatible with tag notNull
2020-10-09 17:42:28 +08:00
Jinzhu
ba253982bf
Fix Pluck with Time and Scanner
2020-09-24 20:08:24 +08:00
Jinzhu
1a526e6802
Fix NamingStrategy with embedded struct, close #3513
2020-09-24 11:32:38 +08:00
Jinzhu
ed1b134e1c
Fix use uint to for autoCreateTime, autoUpdateTime
2020-09-11 17:33:31 +08:00
Jinzhu
b8a74a80d7
Fix embedded struct with default value, close #3451
2020-09-11 11:18:54 +08:00
Jinzhu
231effe119
Fix parse blank default value, close #3442
2020-09-10 11:59:18 +08:00
Jinzhu
f121622228
Don't add prefix for invalid embedded fields
2020-09-04 14:35:44 +08:00
Jinzhu
6a86646469
Fix use db function as integer's default value, close #3384
2020-09-03 20:41:00 +08:00
Jinzhu
78e9c9b748
raise error when failed to parse default value, close #3378
2020-09-03 18:20:57 +08:00
Jinzhu
dbe0f4d8d7
Allow use NULL as default value for string, close #3363
2020-09-02 20:15:12 +08:00
aimuz
9a101c8a08
fmt.Sprint() to strconv.Format ( #3354 )
2020-09-01 21:03:37 +08:00
Jinzhu
cc6a64adfb
Support smart migrate, close #3078
2020-08-23 18:16:12 +08:00
Jinzhu
f88e8b072c
Check valid pointer before use it as Valuer
2020-08-20 18:13:29 +08:00
Jinzhu
3313c11888
Fix embedded struct containing field named ID, close #3286
2020-08-19 19:15:27 +08:00
Jinzhu
c1782d60c1
Fix embedded scanner/valuer, close #3283
2020-08-19 15:47:08 +08:00
Jinzhu
dc48e04896
Fix nested embedded struct, close #3278
2020-08-18 11:21:40 +08:00
Jinzhu
681268cc43
Refactor Create/Query/Update/DeleteClauses interface
2020-08-17 16:31:09 +08:00
Jinzhu
6834c25cec
Fix stack overflow for embedded self-referred associations, close #3269
2020-08-17 12:02:46 +08:00
Jinzhu
7d45833f3e
Fix driver.Valuer interface returns nil, close #3248
2020-08-13 12:05:55 +08:00
Jinzhu
a3dda47afa
Don't parse ignored anonymous field
2020-08-13 10:23:23 +08:00
Jinzhu
ff985b90cc
Fix failed to guess relations for embedded types, close #3224
2020-08-04 12:25:34 +08:00
lninl
7bb883b665
Auto creating/updating time with unix (milli) second ( #3213 )
...
* Auto creating/updating time with unix (milli) second
* add test for 'Auto creating/updating time with unix (milli) second'
2020-07-30 17:39:57 +08:00
Jinzhu
47a5196734
Fix uninitialized Valuer return time.Time, close #3214
2020-07-30 17:37:07 +08:00
Jinzhu
7c2ecdfc1c
Fix use pointer of Valuer as foreign key, close #3212
2020-07-30 10:23:35 +08:00
Jinzhu
2cbdd29f26
Returns error for invalid embedded field, close #3209
2020-07-29 10:23:14 +08:00