From a52c480e068071496e774509ca4c853363ab1677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Sun, 3 Jul 2022 16:25:48 +0800 Subject: [PATCH] - update only --- go.mod | 8 +- go.sum | 15 ++- library.go | 2 +- utils/only/custom.go | 102 +++++++--------- .../github.com/aws/aws-sdk-go/aws/version.go | 2 +- .../x/sys/windows/syscall_windows.go | 9 ++ .../golang.org/x/sys/windows/types_windows.go | 81 +++++++++---- .../x/sys/windows/zsyscall_windows.go | 9 ++ vendor/gorm.io/datatypes/json.go | 113 ++++++++++++++++-- vendor/gorm.io/datatypes/json_map.go | 2 +- vendor/gorm.io/datatypes/url.go | 66 ++++++++++ vendor/gorm.io/gorm/callbacks/associations.go | 27 +++-- vendor/gorm.io/gorm/migrator.go | 10 ++ vendor/gorm.io/gorm/migrator/index.go | 43 +++++++ vendor/gorm.io/gorm/migrator/migrator.go | 17 ++- vendor/gorm.io/gorm/scan.go | 17 ++- vendor/gorm.io/gorm/schema/field.go | 12 +- vendor/gorm.io/gorm/statement.go | 2 +- vendor/modules.txt | 8 +- 19 files changed, 417 insertions(+), 128 deletions(-) create mode 100644 vendor/gorm.io/datatypes/url.go create mode 100644 vendor/gorm.io/gorm/migrator/index.go diff --git a/go.mod b/go.mod index 91013c86..b51d7060 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,7 @@ require ( gitee.com/chunanyong/zorm v1.5.5 github.com/aliyun/aliyun-oss-go-sdk v2.2.4+incompatible github.com/allegro/bigcache/v3 v3.0.2 - github.com/aws/aws-sdk-go v1.44.46 + github.com/aws/aws-sdk-go v1.44.47 github.com/baidubce/bce-sdk-go v0.9.126 github.com/basgys/goxml2json v1.1.0 github.com/beego/beego/v2 v2.0.4 @@ -43,10 +43,10 @@ require ( google.golang.org/protobuf v1.28.0 gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 - gorm.io/datatypes v1.0.6 + gorm.io/datatypes v1.0.7 gorm.io/driver/mysql v1.3.4 gorm.io/driver/postgres v1.3.7 - gorm.io/gorm v1.23.6 + gorm.io/gorm v1.23.7 xorm.io/xorm v1.3.1 ) @@ -105,7 +105,7 @@ require ( go.uber.org/multierr v1.8.0 // indirect golang.org/x/net v0.0.0-20220630215102-69896b714898 // indirect golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f // indirect - golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b // indirect + golang.org/x/sys v0.0.0-20220702020025-31831981b65f // indirect golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7 // indirect gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect diff --git a/go.sum b/go.sum index c4976e80..6b0b1239 100644 --- a/go.sum +++ b/go.sum @@ -39,10 +39,10 @@ github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQ github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.42.27/go.mod h1:OGr6lGMAKGlG9CVrYnWYDKIyb829c6EVBRjxqjmPepc= -github.com/aws/aws-sdk-go v1.44.45 h1:E2i73X4QdVS0XrfX/aVPt/M0Su2IuJ7AFvAMtF0id1Q= -github.com/aws/aws-sdk-go v1.44.45/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go v1.44.46 h1:BsKENvu24eXg7CWQ2wJAjKbDFkGP+hBtxKJIR3UdcB8= github.com/aws/aws-sdk-go v1.44.46/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/aws/aws-sdk-go v1.44.47 h1:uyiNvoR4wfZ8Bp4ghgbyzGFIg5knjZMUAd5S9ba9qNU= +github.com/aws/aws-sdk-go v1.44.47/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/baidubce/bce-sdk-go v0.9.126 h1:wrpb94AN8gLtuGr3wfEm0DObrNulX3W13MeG3lo9SRg= github.com/baidubce/bce-sdk-go v0.9.126/go.mod h1:zbYJMQwE4IZuyrJiFO8tO8NbtYiKTFTbwh4eIsqjVdg= @@ -722,8 +722,6 @@ golang.org/x/net v0.0.0-20210610132358-84b48f89b13b/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e h1:TsQ7F31D3bUCLeqPT0u+yjp1guoArKaNKmCr22PYgTQ= -golang.org/x/net v0.0.0-20220624214902-1bab6f366d9e/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.0.0-20220630215102-69896b714898 h1:K7wO6V1IrczY9QOQ2WkVpw4JQSwCd52UsxVEirZUfiw= golang.org/x/net v0.0.0-20220630215102-69896b714898/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -784,6 +782,8 @@ golang.org/x/sys v0.0.0-20211020174200-9d6173849985/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b h1:2n253B2r0pYSmEV+UNCQoPfU/FiaizQEK5Gu4Bq4JE8= golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f h1:xdsejrW/0Wf2diT5CPp3XmKUNbr7Xvw8kYilQ+6qjRY= +golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= @@ -843,8 +843,6 @@ google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98 google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03 h1:W70HjnmXFJm+8RNjOpIDYW2nKsSi/af0VvIZUtYkwuU= -google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7 h1:q4zUJDd0+knPFB9x20S3vnxzlYNBbt8Yd7zBMVMteeM= google.golang.org/genproto v0.0.0-20220630174209-ad1d48641aa7/go.mod h1:KEWEmljWE5zPzLBa/oHl6DaEt9LmfH6WtH1OHIvleBA= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= @@ -916,10 +914,13 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/datatypes v1.0.6 h1:3cqbakp1DIgC+P7wyODb5k+lSjW8g3mjkg/BIsmhjlE= gorm.io/datatypes v1.0.6/go.mod h1:Gh/Xd/iUWWybMEk8CzYCK/swqlni2r+ROeM1HGIM0ck= +gorm.io/datatypes v1.0.7 h1:8NhJN4+annFjwV1WufDhFiPjdUvV1lSGUdg1UCjQIWY= +gorm.io/datatypes v1.0.7/go.mod h1:l9qkCuy0CdzDEop9HKUdcnC9gHC2sRlaFtHkTzsZRqg= gorm.io/driver/mysql v1.3.2/go.mod h1:ChK6AHbHgDCFZyJp0F+BmVGb06PSIoh9uVYKAlRbb2U= gorm.io/driver/mysql v1.3.4 h1:/KoBMgsUHC3bExsekDcmNYaBnfH2WNeFuXqqrqMc98Q= gorm.io/driver/mysql v1.3.4/go.mod h1:s4Tq0KmD0yhPGHbZEwg1VPlH0vT/GBHJZorPzhcxBUE= gorm.io/driver/postgres v1.3.1/go.mod h1:WwvWOuR9unCLpGWCL6Y3JOeBWvbKi6JLhayiVclSZZU= +gorm.io/driver/postgres v1.3.4/go.mod h1:y0vEuInFKJtijuSGu9e5bs5hzzSzPK+LancpKpvbRBw= gorm.io/driver/postgres v1.3.7 h1:FKF6sIMDHDEvvMF/XJvbnCl0nu6KSKUaPXevJ4r+VYQ= gorm.io/driver/postgres v1.3.7/go.mod h1:f02ympjIcgtHEGFMZvdgTxODZ9snAHDb4hXfigBVuNI= gorm.io/driver/sqlite v1.3.1 h1:bwfE+zTEWklBYoEodIOIBwuWHpnx52Z9zJFW5F33WLk= @@ -931,6 +932,8 @@ gorm.io/gorm v1.23.2/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.4/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= gorm.io/gorm v1.23.6 h1:KFLdNgri4ExFFGTRGGFWON2P1ZN28+9SJRN8voOoYe0= gorm.io/gorm v1.23.6/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= +gorm.io/gorm v1.23.7 h1:ww+9Mu5WwHKDSOQZFC4ipu/sgpKMr9EtrJ0uwBqNtB0= +gorm.io/gorm v1.23.7/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/library.go b/library.go index f9b53826..24b47681 100644 --- a/library.go +++ b/library.go @@ -1,5 +1,5 @@ package go_library func Version() string { - return "v2022-07-01" + return "v2022-07-03" } diff --git a/utils/only/custom.go b/utils/only/custom.go index 13221056..71c50a59 100644 --- a/utils/only/custom.go +++ b/utils/only/custom.go @@ -64,156 +64,140 @@ func GenerateIdAndTime(customId, customTime string) string { func generateIdOne(customId, setTime string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( + randomLength = 5 // 随机数据长度 dataLength = 18 // 默认数据长度 dateFormat = "200601021504" // 时间格式 dateFormatLength = len(dateFormat) // 时间格式长度 ) // 重新计算随机数据长度 - randomLength = dataLength - (dateFormatLength + customIdLength) + newRandomLength = dataLength - (dateFormatLength + customIdLength) - if dateFormatLength+customIdLength > dataLength { - return "", errors.New("超出长度") - } else if dateFormatLength+customIdLength == dataLength { - return "", errors.New("无法使用时间方法") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (dateFormatLength+customIdLength > dataLength) || (dateFormatLength+customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(newRandomLength)), nil } // 生成18位时间[年月日时]唯一编号 func generateIdTwo(customId, setTime string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( + randomLength = 5 // 随机数据长度 dataLength = 18 // 默认数据长度 dateFormat = "2006010215" // 时间格式 dateFormatLength = len(dateFormat) // 时间格式长度 ) // 重新计算随机数据长度 - randomLength = dataLength - (dateFormatLength + customIdLength) + newRandomLength = dataLength - (dateFormatLength + customIdLength) - if dateFormatLength+customIdLength > dataLength { - return "", errors.New("超出长度") - } else if dateFormatLength+customIdLength == dataLength { - return "", errors.New("无法使用时间方法") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (dateFormatLength+customIdLength > dataLength) || (dateFormatLength+customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(newRandomLength)), nil } // 生成18位时间[年月日]唯一编号 func generateIdThree(customId, setTime string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( + randomLength = 5 // 随机数据长度 dataLength = 18 // 默认数据长度 dateFormat = "20060102" // 时间格式 dateFormatLength = len(dateFormat) // 时间格式长度 ) // 重新计算随机数据长度 - randomLength = dataLength - (dateFormatLength + customIdLength) + newRandomLength = dataLength - (dateFormatLength + customIdLength) - if dateFormatLength+customIdLength > dataLength { - return "", errors.New("超出长度") - } else if dateFormatLength+customIdLength == dataLength { - return "", errors.New("无法使用时间方法") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (dateFormatLength+customIdLength > dataLength) || (dateFormatLength+customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(newRandomLength)), nil } // 生成18位时间[年月]唯一编号 func generateIdFour(customId, setTime string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( + randomLength = 5 // 随机数据长度 dataLength = 18 // 默认数据长度 dateFormat = "200601" // 时间格式 dateFormatLength = len(dateFormat) // 时间格式长度 ) // 重新计算随机数据长度 - randomLength = dataLength - (dateFormatLength + customIdLength) + newRandomLength = dataLength - (dateFormatLength + customIdLength) - if dateFormatLength+customIdLength > dataLength { - return "", errors.New("超出长度") - } else if dateFormatLength+customIdLength == dataLength { - return "", errors.New("无法使用时间方法") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (dateFormatLength+customIdLength > dataLength) || (dateFormatLength+customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(newRandomLength)), nil } // 生成18位时间[年]唯一编号 func generateIdFive(customId, setTime string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( + randomLength = 5 // 随机数据长度 dataLength = 18 // 默认数据长度 dateFormat = "2006" // 时间格式 dateFormatLength = len(dateFormat) // 时间格式长度 ) // 重新计算随机数据长度 - randomLength = dataLength - (dateFormatLength + customIdLength) + newRandomLength = dataLength - (dateFormatLength + customIdLength) - if dateFormatLength+customIdLength > dataLength { - return "", errors.New("超出长度") - } else if dateFormatLength+customIdLength == dataLength { - return "", errors.New("无法使用时间方法") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (dateFormatLength+customIdLength > dataLength) || (dateFormatLength+customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s%s", customId, gotime.SetCurrentParse(setTime).SetFormat(dateFormat), gorandom.Numeric(newRandomLength)), nil } // 生成18位随机唯一编号 func generateIdSix(customId string) (string, error) { var ( - randomLength = 4 // 随机数据长度 - customIdLength = len(customId) // 自定义长度 + newRandomLength = 0 // 随机数据长度 + customIdLength = len(customId) // 自定义长度 ) const ( - dataLength = 18 // 默认数据长度 + randomLength = 5 // 随机数据长度 + dataLength = 18 // 默认数据长度 ) // 重新计算随机数据长度 - randomLength = dataLength - customIdLength + newRandomLength = dataLength - customIdLength - if customIdLength >= dataLength { - return "", errors.New("超出长度") - } else if randomLength < 3 { - return "", errors.New("自定义的数据过长") + if (customIdLength > dataLength) || (customIdLength == dataLength) || (randomLength < newRandomLength) { + return "", errors.New("没有满足条件") } - return fmt.Sprintf("%v%s", customId, gorandom.Numeric(randomLength)), nil + return fmt.Sprintf("%v%s", customId, gorandom.Numeric(newRandomLength)), nil } diff --git a/vendor/github.com/aws/aws-sdk-go/aws/version.go b/vendor/github.com/aws/aws-sdk-go/aws/version.go index 5a94b679..db48f9c7 100644 --- a/vendor/github.com/aws/aws-sdk-go/aws/version.go +++ b/vendor/github.com/aws/aws-sdk-go/aws/version.go @@ -5,4 +5,4 @@ package aws const SDKName = "aws-sdk-go" // SDKVersion is the version of this SDK -const SDKVersion = "1.44.46" +const SDKVersion = "1.44.47" diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 636e5de6..be3ec2bd 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -861,6 +861,7 @@ const socket_error = uintptr(^uint32(0)) //sys GetAdaptersAddresses(family uint32, flags uint32, reserved uintptr, adapterAddresses *IpAdapterAddresses, sizePointer *uint32) (errcode error) = iphlpapi.GetAdaptersAddresses //sys GetACP() (acp uint32) = kernel32.GetACP //sys MultiByteToWideChar(codePage uint32, dwFlags uint32, str *byte, nstr int32, wchar *uint16, nwchar int32) (nwrite int32, err error) = kernel32.MultiByteToWideChar +//sys getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) = iphlpapi.GetBestInterfaceEx // For testing: clients can set this flag to force // creation of IPv6 sockets to return EAFNOSUPPORT. @@ -1045,6 +1046,14 @@ func Connect(fd Handle, sa Sockaddr) (err error) { return connect(fd, ptr, n) } +func GetBestInterfaceEx(sa Sockaddr, pdwBestIfIndex *uint32) (err error) { + ptr, _, err := sa.sockaddr() + if err != nil { + return err + } + return getBestInterfaceEx(ptr, pdwBestIfIndex) +} + func Getsockname(fd Handle) (sa Sockaddr, err error) { var rsa RawSockaddrAny l := int32(unsafe.Sizeof(rsa)) diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index e19471c6..f9eaca52 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -160,6 +160,10 @@ const ( MAX_COMPUTERNAME_LENGTH = 15 + MAX_DHCPV6_DUID_LENGTH = 130 + + MAX_DNS_SUFFIX_STRING_LENGTH = 256 + TIME_ZONE_ID_UNKNOWN = 0 TIME_ZONE_ID_STANDARD = 1 @@ -2000,27 +2004,62 @@ type IpAdapterPrefix struct { } type IpAdapterAddresses struct { - Length uint32 - IfIndex uint32 - Next *IpAdapterAddresses - AdapterName *byte - FirstUnicastAddress *IpAdapterUnicastAddress - FirstAnycastAddress *IpAdapterAnycastAddress - FirstMulticastAddress *IpAdapterMulticastAddress - FirstDnsServerAddress *IpAdapterDnsServerAdapter - DnsSuffix *uint16 - Description *uint16 - FriendlyName *uint16 - PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte - PhysicalAddressLength uint32 - Flags uint32 - Mtu uint32 - IfType uint32 - OperStatus uint32 - Ipv6IfIndex uint32 - ZoneIndices [16]uint32 - FirstPrefix *IpAdapterPrefix - /* more fields might be present here. */ + Length uint32 + IfIndex uint32 + Next *IpAdapterAddresses + AdapterName *byte + FirstUnicastAddress *IpAdapterUnicastAddress + FirstAnycastAddress *IpAdapterAnycastAddress + FirstMulticastAddress *IpAdapterMulticastAddress + FirstDnsServerAddress *IpAdapterDnsServerAdapter + DnsSuffix *uint16 + Description *uint16 + FriendlyName *uint16 + PhysicalAddress [syscall.MAX_ADAPTER_ADDRESS_LENGTH]byte + PhysicalAddressLength uint32 + Flags uint32 + Mtu uint32 + IfType uint32 + OperStatus uint32 + Ipv6IfIndex uint32 + ZoneIndices [16]uint32 + FirstPrefix *IpAdapterPrefix + TransmitLinkSpeed uint64 + ReceiveLinkSpeed uint64 + FirstWinsServerAddress *IpAdapterWinsServerAddress + FirstGatewayAddress *IpAdapterGatewayAddress + Ipv4Metric uint32 + Ipv6Metric uint32 + Luid uint64 + Dhcpv4Server SocketAddress + CompartmentId uint32 + NetworkGuid GUID + ConnectionType uint32 + TunnelType uint32 + Dhcpv6Server SocketAddress + Dhcpv6ClientDuid [MAX_DHCPV6_DUID_LENGTH]byte + Dhcpv6ClientDuidLength uint32 + Dhcpv6Iaid uint32 + FirstDnsSuffix *IpAdapterDNSSuffix +} + +type IpAdapterWinsServerAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterWinsServerAddress + Address SocketAddress +} + +type IpAdapterGatewayAddress struct { + Length uint32 + Reserved uint32 + Next *IpAdapterGatewayAddress + Address SocketAddress +} + +type IpAdapterDNSSuffix struct { + Next *IpAdapterDNSSuffix + String [MAX_DNS_SUFFIX_STRING_LENGTH]uint16 } const ( diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 68f52c1e..678262cd 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -177,6 +177,7 @@ var ( procDnsRecordListFree = moddnsapi.NewProc("DnsRecordListFree") procGetAdaptersAddresses = modiphlpapi.NewProc("GetAdaptersAddresses") procGetAdaptersInfo = modiphlpapi.NewProc("GetAdaptersInfo") + procGetBestInterfaceEx = modiphlpapi.NewProc("GetBestInterfaceEx") procGetIfEntry = modiphlpapi.NewProc("GetIfEntry") procAssignProcessToJobObject = modkernel32.NewProc("AssignProcessToJobObject") procCancelIo = modkernel32.NewProc("CancelIo") @@ -1539,6 +1540,14 @@ func GetAdaptersInfo(ai *IpAdapterInfo, ol *uint32) (errcode error) { return } +func getBestInterfaceEx(sockaddr unsafe.Pointer, pdwBestIfIndex *uint32) (errcode error) { + r0, _, _ := syscall.Syscall(procGetBestInterfaceEx.Addr(), 2, uintptr(sockaddr), uintptr(unsafe.Pointer(pdwBestIfIndex)), 0) + if r0 != 0 { + errcode = syscall.Errno(r0) + } + return +} + func GetIfEntry(pIfRow *MibIfRow) (errcode error) { r0, _, _ := syscall.Syscall(procGetIfEntry.Addr(), 1, uintptr(unsafe.Pointer(pIfRow)), 0, 0) if r0 != 0 { diff --git a/vendor/gorm.io/datatypes/json.go b/vendor/gorm.io/datatypes/json.go index d78d6469..496ca1c2 100644 --- a/vendor/gorm.io/datatypes/json.go +++ b/vendor/gorm.io/datatypes/json.go @@ -6,6 +6,7 @@ import ( "encoding/json" "errors" "fmt" + "strconv" "strings" "gorm.io/driver/mysql" @@ -22,8 +23,7 @@ func (j JSON) Value() (driver.Value, error) { if len(j) == 0 { return nil, nil } - bytes, err := json.RawMessage(j).MarshalJSON() - return string(bytes), err + return string(j), nil } // Scan scan value into Jsonb, implements sql.Scanner interface @@ -35,17 +35,19 @@ func (j *JSON) Scan(value interface{}) error { var bytes []byte switch v := value.(type) { case []byte: - bytes = v + if len(v) > 0 { + bytes = make([]byte, len(v)) + copy(bytes, v) + } case string: bytes = []byte(v) default: return errors.New(fmt.Sprint("Failed to unmarshal JSONB value:", value)) } - result := json.RawMessage{} - err := json.Unmarshal(bytes, &result) + result := json.RawMessage(bytes) *j = JSON(result) - return err + return nil } // MarshalJSON to output non base64 encoded []byte @@ -107,6 +109,8 @@ type JSONQueryExpression struct { hasKeys bool equals bool equalsValue interface{} + extract bool + path string } // JSONQuery query column as json @@ -114,6 +118,13 @@ func JSONQuery(column string) *JSONQueryExpression { return &JSONQueryExpression{column: column} } +// Extract extract json with path +func (jsonQuery *JSONQueryExpression) Extract(path string) *JSONQueryExpression { + jsonQuery.extract = true + jsonQuery.path = path + return jsonQuery +} + // HasKey returns clause.Expression func (jsonQuery *JSONQueryExpression) HasKey(keys ...string) *JSONQueryExpression { jsonQuery.keys = keys @@ -135,19 +146,29 @@ func (jsonQuery *JSONQueryExpression) Build(builder clause.Builder) { switch stmt.Dialector.Name() { case "mysql", "sqlite": switch { + case jsonQuery.extract: + builder.WriteString("JSON_EXTRACT(") + builder.WriteQuoted(jsonQuery.column) + builder.WriteByte(',') + builder.AddVar(stmt, jsonQuery.path) + builder.WriteString(")") case jsonQuery.hasKeys: if len(jsonQuery.keys) > 0 { - builder.WriteString("JSON_EXTRACT(" + stmt.Quote(jsonQuery.column) + ",") - builder.AddVar(stmt, "$."+strings.Join(jsonQuery.keys, ".")) + builder.WriteString("JSON_EXTRACT(") + builder.WriteQuoted(jsonQuery.column) + builder.WriteByte(',') + builder.AddVar(stmt, jsonQueryJoin(jsonQuery.keys)) builder.WriteString(") IS NOT NULL") } case jsonQuery.equals: if len(jsonQuery.keys) > 0 { - builder.WriteString("JSON_EXTRACT(" + stmt.Quote(jsonQuery.column) + ",") - builder.AddVar(stmt, "$."+strings.Join(jsonQuery.keys, ".")) + builder.WriteString("JSON_EXTRACT(") + builder.WriteQuoted(jsonQuery.column) + builder.WriteByte(',') + builder.AddVar(stmt, jsonQueryJoin(jsonQuery.keys)) builder.WriteString(") = ") - if _, ok := jsonQuery.equalsValue.(bool); ok { - builder.WriteString(fmt.Sprint(jsonQuery.equalsValue)) + if value, ok := jsonQuery.equalsValue.(bool); ok { + builder.WriteString(strconv.FormatBool(value)) } else { stmt.AddVar(builder, jsonQuery.equalsValue) } @@ -189,3 +210,71 @@ func (jsonQuery *JSONQueryExpression) Build(builder clause.Builder) { } } } + +// JSONOverlapsExpression JSON_OVERLAPS expression, implements clause.Expression interface to use as querier +type JSONOverlapsExpression struct { + column clause.Expression + val string +} + +// JSONOverlaps query column as json +func JSONOverlaps(column clause.Expression, value string) *JSONOverlapsExpression { + return &JSONOverlapsExpression{ + column: column, + val: value, + } +} + +// Build implements clause.Expression +// only mysql support JSON_OVERLAPS +func (json *JSONOverlapsExpression) Build(builder clause.Builder) { + if stmt, ok := builder.(*gorm.Statement); ok { + switch stmt.Dialector.Name() { + case "mysql": + builder.WriteString("JSON_OVERLAPS(") + json.column.Build(builder) + builder.WriteString(",") + builder.AddVar(stmt, json.val) + builder.WriteString(")") + } + } +} + +type columnExpression string + +func Column(col string) columnExpression { + return columnExpression(col) +} + +func (col columnExpression) Build(builder clause.Builder) { + if stmt, ok := builder.(*gorm.Statement); ok { + switch stmt.Dialector.Name() { + case "mysql", "sqlite", "postgres": + builder.WriteString(stmt.Quote(string(col))) + } + } +} + +const prefix = "$." + +func jsonQueryJoin(keys []string) string { + if len(keys) == 1 { + return prefix + keys[0] + } + + n := len(prefix) + n += len(keys) - 1 + for i := 0; i < len(keys); i++ { + n += len(keys[i]) + } + + var b strings.Builder + b.Grow(n) + b.WriteString(prefix) + b.WriteString(keys[0]) + for _, key := range keys[1:] { + b.WriteString(".") + b.WriteString(key) + } + return b.String() +} diff --git a/vendor/gorm.io/datatypes/json_map.go b/vendor/gorm.io/datatypes/json_map.go index d76835a7..78457581 100644 --- a/vendor/gorm.io/datatypes/json_map.go +++ b/vendor/gorm.io/datatypes/json_map.go @@ -14,7 +14,7 @@ import ( "gorm.io/gorm/schema" ) -// JSONMap defiend JSON data type, need to implements driver.Valuer, sql.Scanner interface +// JSONMap defined JSON data type, need to implements driver.Valuer, sql.Scanner interface type JSONMap map[string]interface{} // Value return json value, implement driver.Valuer interface diff --git a/vendor/gorm.io/datatypes/url.go b/vendor/gorm.io/datatypes/url.go new file mode 100644 index 00000000..c58a8955 --- /dev/null +++ b/vendor/gorm.io/datatypes/url.go @@ -0,0 +1,66 @@ +package datatypes + +import ( + "database/sql/driver" + "encoding/json" + "errors" + "fmt" + "net/url" + "strings" + + "gorm.io/gorm" + "gorm.io/gorm/schema" +) + +type URL url.URL + +func (u URL) Value() (driver.Value, error) { + return u.String(), nil +} + +func (u *URL) Scan(value interface{}) error { + var us string + switch v := value.(type) { + case []byte: + us = string(v) + case string: + us = v + default: + return errors.New(fmt.Sprint("Failed to parse URL:", value)) + } + uu, err := url.Parse(us) + if err != nil { + return err + } + *u = URL(*uu) + return nil +} + +func (URL) GormDataType() string { + return "url" +} + +func (URL) GormDBDataType(db *gorm.DB, field *schema.Field) string { + return "TEXT" +} + +func (u *URL) String() string { + return (*url.URL)(u).String() +} + +func (u URL) MarshalJSON() ([]byte, error) { + return json.Marshal(u.String()) +} + +func (u *URL) UnmarshalJSON(data []byte) error { + // ignore null + if string(data) == "null" { + return nil + } + uu, err := url.Parse(strings.Trim(string(data), `"'`)) + if err != nil { + return err + } + *u = URL(*uu) + return nil +} diff --git a/vendor/gorm.io/gorm/callbacks/associations.go b/vendor/gorm.io/gorm/callbacks/associations.go index fd3141cf..4a50e6c2 100644 --- a/vendor/gorm.io/gorm/callbacks/associations.go +++ b/vendor/gorm.io/gorm/callbacks/associations.go @@ -253,6 +253,7 @@ func SaveAfterAssociations(create bool) func(db *gorm.DB) { fieldType = reflect.PtrTo(fieldType) } elems := reflect.MakeSlice(reflect.SliceOf(fieldType), 0, 10) + distinctElems := reflect.MakeSlice(reflect.SliceOf(fieldType), 0, 10) joins := reflect.MakeSlice(reflect.SliceOf(reflect.PtrTo(rel.JoinTable.ModelType)), 0, 10) objs := []reflect.Value{} @@ -272,19 +273,31 @@ func SaveAfterAssociations(create bool) func(db *gorm.DB) { joins = reflect.Append(joins, joinValue) } + identityMap := map[string]bool{} appendToElems := func(v reflect.Value) { if _, zero := rel.Field.ValueOf(db.Statement.Context, v); !zero { f := reflect.Indirect(rel.Field.ReflectValueOf(db.Statement.Context, v)) - for i := 0; i < f.Len(); i++ { elem := f.Index(i) - + if !isPtr { + elem = elem.Addr() + } objs = append(objs, v) - if isPtr { - elems = reflect.Append(elems, elem) - } else { - elems = reflect.Append(elems, elem.Addr()) + elems = reflect.Append(elems, elem) + + relPrimaryValues := make([]interface{}, 0, len(rel.FieldSchema.PrimaryFields)) + for _, pf := range rel.FieldSchema.PrimaryFields { + if pfv, ok := pf.ValueOf(db.Statement.Context, elem); !ok { + relPrimaryValues = append(relPrimaryValues, pfv) + } } + + cacheKey := utils.ToStringKey(relPrimaryValues) + if len(relPrimaryValues) != len(rel.FieldSchema.PrimaryFields) || !identityMap[cacheKey] { + identityMap[cacheKey] = true + distinctElems = reflect.Append(distinctElems, elem) + } + } } } @@ -304,7 +317,7 @@ func SaveAfterAssociations(create bool) func(db *gorm.DB) { // optimize elems of reflect value length if elemLen := elems.Len(); elemLen > 0 { if v, ok := selectColumns[rel.Name+".*"]; !ok || v { - saveAssociations(db, rel, elems, selectColumns, restricted, nil) + saveAssociations(db, rel, distinctElems, selectColumns, restricted, nil) } for i := 0; i < elemLen; i++ { diff --git a/vendor/gorm.io/gorm/migrator.go b/vendor/gorm.io/gorm/migrator.go index 52443877..34e888f2 100644 --- a/vendor/gorm.io/gorm/migrator.go +++ b/vendor/gorm.io/gorm/migrator.go @@ -51,6 +51,15 @@ type ColumnType interface { DefaultValue() (value string, ok bool) } +type Index interface { + Table() string + Name() string + Columns() []string + PrimaryKey() (isPrimaryKey bool, ok bool) + Unique() (unique bool, ok bool) + Option() string +} + // Migrator migrator interface type Migrator interface { // AutoMigrate @@ -90,4 +99,5 @@ type Migrator interface { DropIndex(dst interface{}, name string) error HasIndex(dst interface{}, name string) bool RenameIndex(dst interface{}, oldName, newName string) error + GetIndexes(dst interface{}) ([]Index, error) } diff --git a/vendor/gorm.io/gorm/migrator/index.go b/vendor/gorm.io/gorm/migrator/index.go new file mode 100644 index 00000000..fe686e5a --- /dev/null +++ b/vendor/gorm.io/gorm/migrator/index.go @@ -0,0 +1,43 @@ +package migrator + +import "database/sql" + +// Index implements gorm.Index interface +type Index struct { + TableName string + NameValue string + ColumnList []string + PrimaryKeyValue sql.NullBool + UniqueValue sql.NullBool + OptionValue string +} + +// Table return the table name of the index. +func (idx Index) Table() string { + return idx.TableName +} + +// Name return the name of the index. +func (idx Index) Name() string { + return idx.NameValue +} + +// Columns return the columns fo the index +func (idx Index) Columns() []string { + return idx.ColumnList +} + +// PrimaryKey returns the index is primary key or not. +func (idx Index) PrimaryKey() (isPrimaryKey bool, ok bool) { + return idx.PrimaryKeyValue.Bool, idx.PrimaryKeyValue.Valid +} + +// Unique returns whether the index is unique or not. +func (idx Index) Unique() (unique bool, ok bool) { + return idx.UniqueValue.Bool, idx.UniqueValue.Valid +} + +// Option return the optional attribute fo the index +func (idx Index) Option() string { + return idx.OptionValue +} diff --git a/vendor/gorm.io/gorm/migrator/migrator.go b/vendor/gorm.io/gorm/migrator/migrator.go index 4acc9df6..87ac7745 100644 --- a/vendor/gorm.io/gorm/migrator/migrator.go +++ b/vendor/gorm.io/gorm/migrator/migrator.go @@ -3,6 +3,7 @@ package migrator import ( "context" "database/sql" + "errors" "fmt" "reflect" "regexp" @@ -14,7 +15,6 @@ import ( ) var ( - regRealDataType = regexp.MustCompile(`[^\d](\d+)[^\d]?`) regFullDataType = regexp.MustCompile(`[^\d]*(\d+)[^\d]?`) ) @@ -403,11 +403,16 @@ func (m Migrator) RenameColumn(value interface{}, oldName, newName string) error // MigrateColumn migrate column func (m Migrator) MigrateColumn(value interface{}, field *schema.Field, columnType gorm.ColumnType) error { // found, smart migrate - fullDataType := strings.ToLower(m.DB.Migrator().FullDataTypeOf(field).SQL) + fullDataType := strings.TrimSpace(strings.ToLower(m.DB.Migrator().FullDataTypeOf(field).SQL)) realDataType := strings.ToLower(columnType.DatabaseTypeName()) alterColumn := false + // check type + if !field.PrimaryKey && !strings.HasPrefix(fullDataType, realDataType) { + alterColumn = true + } + // check size if length, ok := columnType.Length(); length != int64(field.Size) { if length > 0 && field.Size > 0 { @@ -415,9 +420,8 @@ func (m Migrator) MigrateColumn(value interface{}, field *schema.Field, columnTy } else { // has size in data type and not equal // Since the following code is frequently called in the for loop, reg optimization is needed here - matches := regRealDataType.FindAllStringSubmatch(realDataType, -1) matches2 := regFullDataType.FindAllStringSubmatch(fullDataType, -1) - if (len(matches) == 1 && matches[0][1] != fmt.Sprint(field.Size) || !field.PrimaryKey) && + if !field.PrimaryKey && (len(matches2) == 1 && matches2[0][1] != fmt.Sprint(length) && ok) { alterColumn = true } @@ -854,3 +858,8 @@ func (m Migrator) CurrentTable(stmt *gorm.Statement) interface{} { } return clause.Table{Name: stmt.Table} } + +// GetIndexes return Indexes []gorm.Index and execErr error +func (m Migrator) GetIndexes(dst interface{}) ([]gorm.Index, error) { + return nil, errors.New("not support") +} diff --git a/vendor/gorm.io/gorm/scan.go b/vendor/gorm.io/gorm/scan.go index 1bb51560..6250fb57 100644 --- a/vendor/gorm.io/gorm/scan.go +++ b/vendor/gorm.io/gorm/scan.go @@ -66,18 +66,23 @@ func (db *DB) scanIntoStruct(rows Rows, reflectValue reflect.Value, values []int db.RowsAffected++ db.AddError(rows.Scan(values...)) + joinedSchemaMap := make(map[*schema.Field]interface{}, 0) for idx, field := range fields { if field != nil { if len(joinFields) == 0 || joinFields[idx][0] == nil { db.AddError(field.Set(db.Statement.Context, reflectValue, values[idx])) } else { - relValue := joinFields[idx][0].ReflectValueOf(db.Statement.Context, reflectValue) - if relValue.Kind() == reflect.Ptr && relValue.IsNil() { - if value := reflect.ValueOf(values[idx]).Elem(); value.Kind() == reflect.Ptr && value.IsNil() { - continue - } + joinSchema := joinFields[idx][0] + relValue := joinSchema.ReflectValueOf(db.Statement.Context, reflectValue) + if relValue.Kind() == reflect.Ptr { + if _, ok := joinedSchemaMap[joinSchema]; !ok { + if value := reflect.ValueOf(values[idx]).Elem(); value.Kind() == reflect.Ptr && value.IsNil() { + continue + } - relValue.Set(reflect.New(relValue.Type().Elem())) + relValue.Set(reflect.New(relValue.Type().Elem())) + joinedSchemaMap[joinSchema] = nil + } } db.AddError(joinFields[idx][1].Set(db.Statement.Context, relValue, values[idx])) } diff --git a/vendor/gorm.io/gorm/schema/field.go b/vendor/gorm.io/gorm/schema/field.go index d6df6596..d4dfbd6f 100644 --- a/vendor/gorm.io/gorm/schema/field.go +++ b/vendor/gorm.io/gorm/schema/field.go @@ -587,6 +587,8 @@ func (field *Field) setupValuerAndSetter() { case **bool: if data != nil && *data != nil { field.ReflectValueOf(ctx, value).SetBool(**data) + } else { + field.ReflectValueOf(ctx, value).SetBool(false) } case bool: field.ReflectValueOf(ctx, value).SetBool(data) @@ -606,6 +608,8 @@ func (field *Field) setupValuerAndSetter() { case **int64: if data != nil && *data != nil { field.ReflectValueOf(ctx, value).SetInt(**data) + } else { + field.ReflectValueOf(ctx, value).SetInt(0) } case int64: field.ReflectValueOf(ctx, value).SetInt(data) @@ -670,6 +674,8 @@ func (field *Field) setupValuerAndSetter() { case **uint64: if data != nil && *data != nil { field.ReflectValueOf(ctx, value).SetUint(**data) + } else { + field.ReflectValueOf(ctx, value).SetUint(0) } case uint64: field.ReflectValueOf(ctx, value).SetUint(data) @@ -722,6 +728,8 @@ func (field *Field) setupValuerAndSetter() { case **float64: if data != nil && *data != nil { field.ReflectValueOf(ctx, value).SetFloat(**data) + } else { + field.ReflectValueOf(ctx, value).SetFloat(0) } case float64: field.ReflectValueOf(ctx, value).SetFloat(data) @@ -766,6 +774,8 @@ func (field *Field) setupValuerAndSetter() { case **string: if data != nil && *data != nil { field.ReflectValueOf(ctx, value).SetString(**data) + } else { + field.ReflectValueOf(ctx, value).SetString("") } case string: field.ReflectValueOf(ctx, value).SetString(data) @@ -940,7 +950,7 @@ func (field *Field) setupNewValuePool() { New: func() interface{} { return &serializer{ Field: field, - Serializer: reflect.New(reflect.Indirect(reflect.ValueOf(field.Serializer)).Type()).Interface().(SerializerInterface), + Serializer: field.Serializer, } }, } diff --git a/vendor/gorm.io/gorm/statement.go b/vendor/gorm.io/gorm/statement.go index ed3e8716..850af6cb 100644 --- a/vendor/gorm.io/gorm/statement.go +++ b/vendor/gorm.io/gorm/statement.go @@ -650,7 +650,7 @@ func (stmt *Statement) Changed(fields ...string) bool { return false } -var nameMatcher = regexp.MustCompile(`^[\W]?(?:[a-z_]+?)[\W]?\.[\W]?([a-z_]+?)[\W]?$`) +var nameMatcher = regexp.MustCompile(`^[\W]?(?:[a-z_0-9]+?)[\W]?\.[\W]?([a-z_0-9]+?)[\W]?$`) // SelectAndOmitColumns get select and omit columns, select -> true, omit -> false func (stmt *Statement) SelectAndOmitColumns(requireCreate, requireUpdate bool) (map[string]bool, bool) { diff --git a/vendor/modules.txt b/vendor/modules.txt index f644710a..97962e89 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -9,7 +9,7 @@ github.com/aliyun/aliyun-oss-go-sdk/oss ## explicit; go 1.16 github.com/allegro/bigcache/v3 github.com/allegro/bigcache/v3/queue -# github.com/aws/aws-sdk-go v1.44.46 +# github.com/aws/aws-sdk-go v1.44.47 ## explicit; go 1.11 github.com/aws/aws-sdk-go/aws github.com/aws/aws-sdk-go/aws/arn @@ -481,7 +481,7 @@ golang.org/x/net/trace ## explicit golang.org/x/sync/errgroup golang.org/x/sync/singleflight -# golang.org/x/sys v0.0.0-20220627191245-f75cf1eec38b +# golang.org/x/sys v0.0.0-20220702020025-31831981b65f ## explicit; go 1.17 golang.org/x/sys/cpu golang.org/x/sys/internal/unsafeheader @@ -623,7 +623,7 @@ gopkg.in/mgo.v2/internal/scram # gopkg.in/yaml.v2 v2.4.0 ## explicit; go 1.15 gopkg.in/yaml.v2 -# gorm.io/datatypes v1.0.6 +# gorm.io/datatypes v1.0.7 ## explicit; go 1.14 gorm.io/datatypes # gorm.io/driver/mysql v1.3.4 @@ -632,7 +632,7 @@ gorm.io/driver/mysql # gorm.io/driver/postgres v1.3.7 ## explicit; go 1.14 gorm.io/driver/postgres -# gorm.io/gorm v1.23.6 +# gorm.io/gorm v1.23.7 ## explicit; go 1.14 gorm.io/gorm gorm.io/gorm/callbacks