From 1541bc28b50b07f86dcf7249fff62ce9861e0a93 Mon Sep 17 00:00:00 2001 From: Dylan Moreland Date: Tue, 30 Apr 2024 16:45:54 -0400 Subject: [PATCH] Upgrade SQLBoiler to 4.16.2 --- go.mod | 25 ++++- go.sum | 28 ++++++ models/aftermarket_devices.go | 122 +++++++++++++++-------- models/boil_queries.go | 2 +- models/boil_table_names.go | 2 +- models/boil_types.go | 2 +- models/boil_view_names.go | 2 +- models/dcns.go | 65 +++++++++--- models/manufacturers.go | 105 +++++++++++++------- models/privileges.go | 65 +++++++++--- models/psql_upsert.go | 65 +++++++++--- models/rewards.go | 109 +++++++++++++-------- models/synthetic_devices.go | 88 +++++++++++------ models/vehicles.go | 179 ++++++++++++++++++++-------------- 14 files changed, 591 insertions(+), 268 deletions(-) diff --git a/go.mod b/go.mod index d3b1d313..0c33aba7 100644 --- a/go.mod +++ b/go.mod @@ -24,8 +24,8 @@ require ( github.com/vektah/gqlparser/v2 v2.5.10 github.com/vmihailenco/msgpack/v5 v5.4.0 github.com/volatiletech/null/v8 v8.1.2 - github.com/volatiletech/sqlboiler/v4 v4.15.0 - github.com/volatiletech/strmangle v0.0.5 + github.com/volatiletech/sqlboiler/v4 v4.16.2 + github.com/volatiletech/strmangle v0.0.6 go.uber.org/mock v0.4.0 golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 ) @@ -33,6 +33,9 @@ require ( require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver/v3 v3.1.1 // indirect + github.com/Masterminds/sprig/v3 v3.2.2 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/Shopify/sarama v1.38.1 // indirect @@ -60,6 +63,7 @@ require ( github.com/eapache/go-resiliency v1.3.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20230111030713-bf00bc1b83b6 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-ole/go-ole v1.2.6 // indirect github.com/gofrs/uuid v4.3.0+incompatible // indirect github.com/gogo/protobuf v1.3.2 // indirect @@ -71,7 +75,11 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/golang-lru/v2 v2.0.3 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect github.com/holiman/uint256 v1.2.3 // indirect + github.com/huandu/xstrings v1.3.2 // indirect + github.com/imdario/mergo v0.3.16 // indirect + github.com/inconshreveable/mousetrap v1.0.1 // indirect github.com/jcmturner/aescts/v2 v2.0.0 // indirect github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect github.com/jcmturner/gofork v1.7.6 // indirect @@ -85,7 +93,9 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.15 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/patternmatcher v0.5.0 // indirect github.com/moby/sys/sequential v0.5.0 // indirect github.com/moby/term v0.5.0 // indirect @@ -93,6 +103,8 @@ require ( github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc5 // indirect github.com/opencontainers/runc v1.1.12 // indirect + github.com/pelletier/go-toml v1.9.5 // indirect + github.com/pelletier/go-toml/v2 v2.0.5 // indirect github.com/pierrec/lz4/v4 v4.1.18 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect @@ -104,9 +116,16 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/shirou/gopsutil/v3 v3.23.8 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect + github.com/shopspring/decimal v1.3.1 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sosodev/duration v1.1.0 // indirect + github.com/spf13/afero v1.9.2 // indirect github.com/spf13/cast v1.5.0 // indirect + github.com/spf13/cobra v1.5.0 // indirect + github.com/spf13/jwalterweatherman v1.1.0 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/spf13/viper v1.12.0 // indirect + github.com/subosito/gotenv v1.4.1 // indirect github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/urfave/cli/v2 v2.25.7 // indirect @@ -128,5 +147,7 @@ require ( google.golang.org/genproto/googleapis/rpc v0.0.0-20231016165738-49dd2c1f3d0b // indirect google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index c5b46df7..540c5ae6 100644 --- a/go.sum +++ b/go.sum @@ -75,8 +75,11 @@ github.com/DIMO-Network/mnemonic v0.0.0-20240226173518-343f1791b339/go.mod h1:CT github.com/DIMO-Network/shared v0.10.5 h1:hud/AdSCG0E3GpjIo1uHGIXO2cilTwo3q8l8uk/P6kU= github.com/DIMO-Network/shared v0.10.5/go.mod h1:sfeTTaAf4Y5aU15yGTksdZejJP+X6M2n2M70Qm5+Rqk= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030IGemrRc= github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= @@ -217,6 +220,8 @@ github.com/frankban/quicktest v1.14.3/go.mod h1:mgiwOwqx65TmIk1wJ6Q7wvnVMocbUork github.com/friendsofgo/errors v0.9.2 h1:X6NYxef4efCBdwI7BgS820zFaN7Cphrmb+Pljdzjtgk= github.com/friendsofgo/errors v0.9.2/go.mod h1:yCvFW5AkDIL9qn7suHVLiI/gH228n7PC4Pn44IGoTOI= github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -378,6 +383,7 @@ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/golang-lru/v2 v2.0.3 h1:kmRrRLlInXvng0SmLxmQpQkpbYAvcXm7NPDrgxJa9mE= github.com/hashicorp/golang-lru/v2 v2.0.3/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc= @@ -387,12 +393,16 @@ github.com/hashicorp/serf v0.9.7/go.mod h1:TXZNMjZQijwlDvp+r0b63xZ45H7JmCmgg4gpT github.com/holiman/uint256 v1.2.3 h1:K8UWO1HUJpRMXBxbmaY1Y8IAMZC/RsKB+ArEnnK4l5o= github.com/holiman/uint256 v1.2.3/go.mod h1:SC8Ryt4n+UBbPbIBKaG9zbbDlp4jOru9xFZmPzLUTxw= github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jarcoal/httpmock v1.3.1 h1:iUx3whfZWVf3jT01hQTO/Eo5sAYtB2/rqaUuOtpInww= github.com/jarcoal/httpmock v1.3.1/go.mod h1:3yb8rc4BI7TCBhFY8ng0gjuLKJNquuDNiPaZjnENuYg= @@ -420,6 +430,7 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kat-co/vala v0.0.0-20170210184112-42e1d8b61f12/go.mod h1:u9MdXq/QageOOSGp7qG4XAQsYUMP+V5zEel/Vrl6OOc= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -479,6 +490,7 @@ github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKju github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= @@ -488,6 +500,7 @@ github.com/mitchellh/mapstructure v1.4.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RR github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= @@ -514,8 +527,10 @@ github.com/opencontainers/runc v1.1.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= +github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= github.com/pierrec/lz4/v4 v4.1.18 h1:xaKrnTkyoqfh1YItXl56+6KJNVYWlEEPuAQW9xsplYQ= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -591,6 +606,7 @@ github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -601,13 +617,18 @@ github.com/sosodev/duration v1.1.0 h1:kQcaiGbJaIsRqgQy7VGlZrVw1giWO+lDoX3MCPnpVO github.com/sosodev/duration v1.1.0/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= +github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.12.0 h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ= github.com/spf13/viper v1.12.0/go.mod h1:b6COn30jlNxbm/V2IqWiNWkJ+vZNiMNksliPCiuKtSI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -625,6 +646,7 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.3.0/go.mod h1:YzJjq/33h7nrwdY+iHMhEOEEbW0ovIz0tB6t6PwAXzs= +github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/testcontainers/testcontainers-go v0.25.0 h1:erH6cQjsaJrH+rJDU9qIf89KFdhK0Bft0aEZHlYC3Vs= github.com/testcontainers/testcontainers-go v0.25.0/go.mod h1:4sC9SiJyzD1XFi59q8umTQYWxnkweEc5OjVtTUlJzqQ= @@ -655,9 +677,13 @@ github.com/volatiletech/randomize v0.0.1 h1:eE5yajattWqTB2/eN8df4dw+8jwAzBtbdo5s github.com/volatiletech/randomize v0.0.1/go.mod h1:GN3U0QYqfZ9FOJ67bzax1cqZ5q2xuj2mXrXBjWaRTlY= github.com/volatiletech/sqlboiler/v4 v4.15.0 h1:+twm3mA34SaUF6wB9U6QkXxkK8AKkV5EfgMSvcKWeY4= github.com/volatiletech/sqlboiler/v4 v4.15.0/go.mod h1:s643wqYyCQ7Ak2hMVxH7kTS0+lFPNlj+gHKUIukJ0YA= +github.com/volatiletech/sqlboiler/v4 v4.16.2 h1:PcV2bxjE+S+GwPKCyX7/AjlY3aiTKsOEjciLhpWQImc= +github.com/volatiletech/sqlboiler/v4 v4.16.2/go.mod h1:B14BPBGTrJ2X6l7lwnvV/iXgYR48+ozGSlzHI3frl6U= github.com/volatiletech/strmangle v0.0.1/go.mod h1:F6RA6IkB5vq0yTG4GQ0UsbbRcl3ni9P76i+JrTBKFFg= github.com/volatiletech/strmangle v0.0.5 h1:CompJPy+lAi9h+YU/IzBR4X2RDRuAuEIP+kjFdyZXcU= github.com/volatiletech/strmangle v0.0.5/go.mod h1:ycDvbDkjDvhC0NUU8w3fWwl5JEMTV56vTKXzR3GeR+0= +github.com/volatiletech/strmangle v0.0.6 h1:AdOYE3B2ygRDq4rXDij/MMwq6KVK/pWAYxpC7CLrkKQ= +github.com/volatiletech/strmangle v0.0.6/go.mod h1:ycDvbDkjDvhC0NUU8w3fWwl5JEMTV56vTKXzR3GeR+0= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673/go.mod h1:N3UwUGtsrSj3ccvlPHLoLsHnpR27oXr4ZE984MbSER8= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -915,6 +941,7 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220825204002-c680a09ffe64/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1191,6 +1218,7 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.66.4/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/models/aftermarket_devices.go b/models/aftermarket_devices.go index e2d2dcb9..7cb3fb77 100644 --- a/models/aftermarket_devices.go +++ b/models/aftermarket_devices.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -146,6 +146,18 @@ func (w whereHelpernull_String) GT(x null.String) qm.QueryMod { func (w whereHelpernull_String) GTE(x null.String) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GTE, x) } +func (w whereHelpernull_String) LIKE(x null.String) qm.QueryMod { + return qm.Where(w.field+" LIKE ?", x) +} +func (w whereHelpernull_String) NLIKE(x null.String) qm.QueryMod { + return qm.Where(w.field+" NOT LIKE ?", x) +} +func (w whereHelpernull_String) ILIKE(x null.String) qm.QueryMod { + return qm.Where(w.field+" ILIKE ?", x) +} +func (w whereHelpernull_String) NILIKE(x null.String) qm.QueryMod { + return qm.Where(w.field+" NOT ILIKE ?", x) +} func (w whereHelpernull_String) IN(slice []string) qm.QueryMod { values := make([]interface{}, 0, len(slice)) for _, value := range slice { @@ -361,18 +373,27 @@ var ( _ = qmhelper.Where ) +var aftermarketDeviceAfterSelectMu sync.Mutex var aftermarketDeviceAfterSelectHooks []AftermarketDeviceHook +var aftermarketDeviceBeforeInsertMu sync.Mutex var aftermarketDeviceBeforeInsertHooks []AftermarketDeviceHook +var aftermarketDeviceAfterInsertMu sync.Mutex var aftermarketDeviceAfterInsertHooks []AftermarketDeviceHook +var aftermarketDeviceBeforeUpdateMu sync.Mutex var aftermarketDeviceBeforeUpdateHooks []AftermarketDeviceHook +var aftermarketDeviceAfterUpdateMu sync.Mutex var aftermarketDeviceAfterUpdateHooks []AftermarketDeviceHook +var aftermarketDeviceBeforeDeleteMu sync.Mutex var aftermarketDeviceBeforeDeleteHooks []AftermarketDeviceHook +var aftermarketDeviceAfterDeleteMu sync.Mutex var aftermarketDeviceAfterDeleteHooks []AftermarketDeviceHook +var aftermarketDeviceBeforeUpsertMu sync.Mutex var aftermarketDeviceBeforeUpsertHooks []AftermarketDeviceHook +var aftermarketDeviceAfterUpsertMu sync.Mutex var aftermarketDeviceAfterUpsertHooks []AftermarketDeviceHook // doAfterSelectHooks executes all "after Select" hooks. @@ -514,23 +535,41 @@ func (o *AftermarketDevice) doAfterUpsertHooks(ctx context.Context, exec boil.Co func AddAftermarketDeviceHook(hookPoint boil.HookPoint, aftermarketDeviceHook AftermarketDeviceHook) { switch hookPoint { case boil.AfterSelectHook: + aftermarketDeviceAfterSelectMu.Lock() aftermarketDeviceAfterSelectHooks = append(aftermarketDeviceAfterSelectHooks, aftermarketDeviceHook) + aftermarketDeviceAfterSelectMu.Unlock() case boil.BeforeInsertHook: + aftermarketDeviceBeforeInsertMu.Lock() aftermarketDeviceBeforeInsertHooks = append(aftermarketDeviceBeforeInsertHooks, aftermarketDeviceHook) + aftermarketDeviceBeforeInsertMu.Unlock() case boil.AfterInsertHook: + aftermarketDeviceAfterInsertMu.Lock() aftermarketDeviceAfterInsertHooks = append(aftermarketDeviceAfterInsertHooks, aftermarketDeviceHook) + aftermarketDeviceAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + aftermarketDeviceBeforeUpdateMu.Lock() aftermarketDeviceBeforeUpdateHooks = append(aftermarketDeviceBeforeUpdateHooks, aftermarketDeviceHook) + aftermarketDeviceBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + aftermarketDeviceAfterUpdateMu.Lock() aftermarketDeviceAfterUpdateHooks = append(aftermarketDeviceAfterUpdateHooks, aftermarketDeviceHook) + aftermarketDeviceAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + aftermarketDeviceBeforeDeleteMu.Lock() aftermarketDeviceBeforeDeleteHooks = append(aftermarketDeviceBeforeDeleteHooks, aftermarketDeviceHook) + aftermarketDeviceBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + aftermarketDeviceAfterDeleteMu.Lock() aftermarketDeviceAfterDeleteHooks = append(aftermarketDeviceAfterDeleteHooks, aftermarketDeviceHook) + aftermarketDeviceAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + aftermarketDeviceBeforeUpsertMu.Lock() aftermarketDeviceBeforeUpsertHooks = append(aftermarketDeviceBeforeUpsertHooks, aftermarketDeviceHook) + aftermarketDeviceBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + aftermarketDeviceAfterUpsertMu.Lock() aftermarketDeviceAfterUpsertHooks = append(aftermarketDeviceAfterUpsertHooks, aftermarketDeviceHook) + aftermarketDeviceAfterUpsertMu.Unlock() } } @@ -670,30 +709,23 @@ func (aftermarketDeviceL) LoadManufacturer(ctx context.Context, e boil.ContextEx } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &aftermarketDeviceR{} } if !queries.IsNil(object.ManufacturerID) { - args = append(args, object.ManufacturerID) + args[object.ManufacturerID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &aftermarketDeviceR{} } - for _, a := range args { - if queries.Equal(a, obj.ManufacturerID) { - continue Outer - } - } - if !queries.IsNil(obj.ManufacturerID) { - args = append(args, obj.ManufacturerID) + args[obj.ManufacturerID] = struct{}{} } } @@ -703,9 +735,16 @@ func (aftermarketDeviceL) LoadManufacturer(ctx context.Context, e boil.ContextEx return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.manufacturers`), - qm.WhereIn(`identity_api.manufacturers.id in ?`, args...), + qm.WhereIn(`identity_api.manufacturers.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -794,30 +833,23 @@ func (aftermarketDeviceL) LoadVehicle(ctx context.Context, e boil.ContextExecuto } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &aftermarketDeviceR{} } if !queries.IsNil(object.VehicleID) { - args = append(args, object.VehicleID) + args[object.VehicleID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &aftermarketDeviceR{} } - for _, a := range args { - if queries.Equal(a, obj.VehicleID) { - continue Outer - } - } - if !queries.IsNil(obj.VehicleID) { - args = append(args, obj.VehicleID) + args[obj.VehicleID] = struct{}{} } } @@ -827,9 +859,16 @@ func (aftermarketDeviceL) LoadVehicle(ctx context.Context, e boil.ContextExecuto return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -918,26 +957,18 @@ func (aftermarketDeviceL) LoadAftermarketTokenRewards(ctx context.Context, e boi } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &aftermarketDeviceR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &aftermarketDeviceR{} } - - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -945,9 +976,16 @@ func (aftermarketDeviceL) LoadAftermarketTokenRewards(ctx context.Context, e boi return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.rewards`), - qm.WhereIn(`identity_api.rewards.aftermarket_token_id in ?`, args...), + qm.WhereIn(`identity_api.rewards.aftermarket_token_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1530,7 +1568,7 @@ func (o AftermarketDeviceSlice) UpdateAll(ctx context.Context, exec boil.Context // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *AftermarketDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *AftermarketDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no aftermarket_devices provided for upsert") } @@ -1576,7 +1614,7 @@ func (o *AftermarketDevice) Upsert(ctx context.Context, exec boil.ContextExecuto var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( aftermarketDeviceAllColumns, aftermarketDeviceColumnsWithDefault, aftermarketDeviceColumnsWithoutDefault, @@ -1592,12 +1630,18 @@ func (o *AftermarketDevice) Upsert(ctx context.Context, exec boil.ContextExecuto return errors.New("models: unable to upsert aftermarket_devices, could not build update column list") } + ret := strmangle.SetComplement(aftermarketDeviceAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(aftermarketDevicePrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert aftermarket_devices, could not build conflict column list") + } + conflict = make([]string, len(aftermarketDevicePrimaryKeyColumns)) copy(conflict, aftermarketDevicePrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"aftermarket_devices\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"aftermarket_devices\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(aftermarketDeviceType, aftermarketDeviceMapping, insert) if err != nil { diff --git a/models/boil_queries.go b/models/boil_queries.go index c4481975..f212c964 100644 --- a/models/boil_queries.go +++ b/models/boil_queries.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models diff --git a/models/boil_table_names.go b/models/boil_table_names.go index 50048304..4e73b8ec 100644 --- a/models/boil_table_names.go +++ b/models/boil_table_names.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models diff --git a/models/boil_types.go b/models/boil_types.go index 57f8c656..02a6fdfd 100644 --- a/models/boil_types.go +++ b/models/boil_types.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models diff --git a/models/boil_view_names.go b/models/boil_view_names.go index 6b11f594..01504d82 100644 --- a/models/boil_view_names.go +++ b/models/boil_view_names.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models diff --git a/models/dcns.go b/models/dcns.go index cfe39212..ed7f2410 100644 --- a/models/dcns.go +++ b/models/dcns.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -153,18 +153,27 @@ var ( _ = qmhelper.Where ) +var dcnAfterSelectMu sync.Mutex var dcnAfterSelectHooks []DCNHook +var dcnBeforeInsertMu sync.Mutex var dcnBeforeInsertHooks []DCNHook +var dcnAfterInsertMu sync.Mutex var dcnAfterInsertHooks []DCNHook +var dcnBeforeUpdateMu sync.Mutex var dcnBeforeUpdateHooks []DCNHook +var dcnAfterUpdateMu sync.Mutex var dcnAfterUpdateHooks []DCNHook +var dcnBeforeDeleteMu sync.Mutex var dcnBeforeDeleteHooks []DCNHook +var dcnAfterDeleteMu sync.Mutex var dcnAfterDeleteHooks []DCNHook +var dcnBeforeUpsertMu sync.Mutex var dcnBeforeUpsertHooks []DCNHook +var dcnAfterUpsertMu sync.Mutex var dcnAfterUpsertHooks []DCNHook // doAfterSelectHooks executes all "after Select" hooks. @@ -306,23 +315,41 @@ func (o *DCN) doAfterUpsertHooks(ctx context.Context, exec boil.ContextExecutor) func AddDCNHook(hookPoint boil.HookPoint, dcnHook DCNHook) { switch hookPoint { case boil.AfterSelectHook: + dcnAfterSelectMu.Lock() dcnAfterSelectHooks = append(dcnAfterSelectHooks, dcnHook) + dcnAfterSelectMu.Unlock() case boil.BeforeInsertHook: + dcnBeforeInsertMu.Lock() dcnBeforeInsertHooks = append(dcnBeforeInsertHooks, dcnHook) + dcnBeforeInsertMu.Unlock() case boil.AfterInsertHook: + dcnAfterInsertMu.Lock() dcnAfterInsertHooks = append(dcnAfterInsertHooks, dcnHook) + dcnAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + dcnBeforeUpdateMu.Lock() dcnBeforeUpdateHooks = append(dcnBeforeUpdateHooks, dcnHook) + dcnBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + dcnAfterUpdateMu.Lock() dcnAfterUpdateHooks = append(dcnAfterUpdateHooks, dcnHook) + dcnAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + dcnBeforeDeleteMu.Lock() dcnBeforeDeleteHooks = append(dcnBeforeDeleteHooks, dcnHook) + dcnBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + dcnAfterDeleteMu.Lock() dcnAfterDeleteHooks = append(dcnAfterDeleteHooks, dcnHook) + dcnAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + dcnBeforeUpsertMu.Lock() dcnBeforeUpsertHooks = append(dcnBeforeUpsertHooks, dcnHook) + dcnBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + dcnAfterUpsertMu.Lock() dcnAfterUpsertHooks = append(dcnAfterUpsertHooks, dcnHook) + dcnAfterUpsertMu.Unlock() } } @@ -437,30 +464,23 @@ func (dcnL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, singular bo } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &dcnR{} } if !queries.IsNil(object.VehicleID) { - args = append(args, object.VehicleID) + args[object.VehicleID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &dcnR{} } - for _, a := range args { - if queries.Equal(a, obj.VehicleID) { - continue Outer - } - } - if !queries.IsNil(obj.VehicleID) { - args = append(args, obj.VehicleID) + args[obj.VehicleID] = struct{}{} } } @@ -470,9 +490,16 @@ func (dcnL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, singular bo return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -863,7 +890,7 @@ func (o DCNSlice) UpdateAll(ctx context.Context, exec boil.ContextExecutor, cols // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *DCN) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *DCN) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no dcns provided for upsert") } @@ -909,7 +936,7 @@ func (o *DCN) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnCon var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( dcnAllColumns, dcnColumnsWithDefault, dcnColumnsWithoutDefault, @@ -925,12 +952,18 @@ func (o *DCN) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnCon return errors.New("models: unable to upsert dcns, could not build update column list") } + ret := strmangle.SetComplement(dcnAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(dcnPrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert dcns, could not build conflict column list") + } + conflict = make([]string, len(dcnPrimaryKeyColumns)) copy(conflict, dcnPrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"dcns\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"dcns\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(dcnType, dcnMapping, insert) if err != nil { diff --git a/models/manufacturers.go b/models/manufacturers.go index 3eba7389..4ae1c57d 100644 --- a/models/manufacturers.go +++ b/models/manufacturers.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -60,12 +60,16 @@ var ManufacturerTableColumns = struct { type whereHelperstring struct{ field string } -func (w whereHelperstring) EQ(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.EQ, x) } -func (w whereHelperstring) NEQ(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.NEQ, x) } -func (w whereHelperstring) LT(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LT, x) } -func (w whereHelperstring) LTE(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LTE, x) } -func (w whereHelperstring) GT(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GT, x) } -func (w whereHelperstring) GTE(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GTE, x) } +func (w whereHelperstring) EQ(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.EQ, x) } +func (w whereHelperstring) NEQ(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.NEQ, x) } +func (w whereHelperstring) LT(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LT, x) } +func (w whereHelperstring) LTE(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.LTE, x) } +func (w whereHelperstring) GT(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GT, x) } +func (w whereHelperstring) GTE(x string) qm.QueryMod { return qmhelper.Where(w.field, qmhelper.GTE, x) } +func (w whereHelperstring) LIKE(x string) qm.QueryMod { return qm.Where(w.field+" LIKE ?", x) } +func (w whereHelperstring) NLIKE(x string) qm.QueryMod { return qm.Where(w.field+" NOT LIKE ?", x) } +func (w whereHelperstring) ILIKE(x string) qm.QueryMod { return qm.Where(w.field+" ILIKE ?", x) } +func (w whereHelperstring) NILIKE(x string) qm.QueryMod { return qm.Where(w.field+" NOT ILIKE ?", x) } func (w whereHelperstring) IN(slice []string) qm.QueryMod { values := make([]interface{}, 0, len(slice)) for _, value := range slice { @@ -171,18 +175,27 @@ var ( _ = qmhelper.Where ) +var manufacturerAfterSelectMu sync.Mutex var manufacturerAfterSelectHooks []ManufacturerHook +var manufacturerBeforeInsertMu sync.Mutex var manufacturerBeforeInsertHooks []ManufacturerHook +var manufacturerAfterInsertMu sync.Mutex var manufacturerAfterInsertHooks []ManufacturerHook +var manufacturerBeforeUpdateMu sync.Mutex var manufacturerBeforeUpdateHooks []ManufacturerHook +var manufacturerAfterUpdateMu sync.Mutex var manufacturerAfterUpdateHooks []ManufacturerHook +var manufacturerBeforeDeleteMu sync.Mutex var manufacturerBeforeDeleteHooks []ManufacturerHook +var manufacturerAfterDeleteMu sync.Mutex var manufacturerAfterDeleteHooks []ManufacturerHook +var manufacturerBeforeUpsertMu sync.Mutex var manufacturerBeforeUpsertHooks []ManufacturerHook +var manufacturerAfterUpsertMu sync.Mutex var manufacturerAfterUpsertHooks []ManufacturerHook // doAfterSelectHooks executes all "after Select" hooks. @@ -324,23 +337,41 @@ func (o *Manufacturer) doAfterUpsertHooks(ctx context.Context, exec boil.Context func AddManufacturerHook(hookPoint boil.HookPoint, manufacturerHook ManufacturerHook) { switch hookPoint { case boil.AfterSelectHook: + manufacturerAfterSelectMu.Lock() manufacturerAfterSelectHooks = append(manufacturerAfterSelectHooks, manufacturerHook) + manufacturerAfterSelectMu.Unlock() case boil.BeforeInsertHook: + manufacturerBeforeInsertMu.Lock() manufacturerBeforeInsertHooks = append(manufacturerBeforeInsertHooks, manufacturerHook) + manufacturerBeforeInsertMu.Unlock() case boil.AfterInsertHook: + manufacturerAfterInsertMu.Lock() manufacturerAfterInsertHooks = append(manufacturerAfterInsertHooks, manufacturerHook) + manufacturerAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + manufacturerBeforeUpdateMu.Lock() manufacturerBeforeUpdateHooks = append(manufacturerBeforeUpdateHooks, manufacturerHook) + manufacturerBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + manufacturerAfterUpdateMu.Lock() manufacturerAfterUpdateHooks = append(manufacturerAfterUpdateHooks, manufacturerHook) + manufacturerAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + manufacturerBeforeDeleteMu.Lock() manufacturerBeforeDeleteHooks = append(manufacturerBeforeDeleteHooks, manufacturerHook) + manufacturerBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + manufacturerAfterDeleteMu.Lock() manufacturerAfterDeleteHooks = append(manufacturerAfterDeleteHooks, manufacturerHook) + manufacturerAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + manufacturerBeforeUpsertMu.Lock() manufacturerBeforeUpsertHooks = append(manufacturerBeforeUpsertHooks, manufacturerHook) + manufacturerBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + manufacturerAfterUpsertMu.Lock() manufacturerAfterUpsertHooks = append(manufacturerAfterUpsertHooks, manufacturerHook) + manufacturerAfterUpsertMu.Unlock() } } @@ -472,26 +503,18 @@ func (manufacturerL) LoadAftermarketDevices(ctx context.Context, e boil.ContextE } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &manufacturerR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &manufacturerR{} } - - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -499,9 +522,16 @@ func (manufacturerL) LoadAftermarketDevices(ctx context.Context, e boil.ContextE return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.aftermarket_devices`), - qm.WhereIn(`identity_api.aftermarket_devices.manufacturer_id in ?`, args...), + qm.WhereIn(`identity_api.aftermarket_devices.manufacturer_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -586,26 +616,18 @@ func (manufacturerL) LoadVehicles(ctx context.Context, e boil.ContextExecutor, s } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &manufacturerR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &manufacturerR{} } - - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -613,9 +635,16 @@ func (manufacturerL) LoadVehicles(ctx context.Context, e boil.ContextExecutor, s return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.manufacturer_id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.manufacturer_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1176,7 +1205,7 @@ func (o ManufacturerSlice) UpdateAll(ctx context.Context, exec boil.ContextExecu // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *Manufacturer) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *Manufacturer) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no manufacturers provided for upsert") } @@ -1222,7 +1251,7 @@ func (o *Manufacturer) Upsert(ctx context.Context, exec boil.ContextExecutor, up var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( manufacturerAllColumns, manufacturerColumnsWithDefault, manufacturerColumnsWithoutDefault, @@ -1238,12 +1267,18 @@ func (o *Manufacturer) Upsert(ctx context.Context, exec boil.ContextExecutor, up return errors.New("models: unable to upsert manufacturers, could not build update column list") } + ret := strmangle.SetComplement(manufacturerAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(manufacturerPrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert manufacturers, could not build conflict column list") + } + conflict = make([]string, len(manufacturerPrimaryKeyColumns)) copy(conflict, manufacturerPrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"manufacturers\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"manufacturers\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(manufacturerType, manufacturerMapping, insert) if err != nil { diff --git a/models/privileges.go b/models/privileges.go index c4b81157..69e3fead 100644 --- a/models/privileges.go +++ b/models/privileges.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -145,18 +145,27 @@ var ( _ = qmhelper.Where ) +var privilegeAfterSelectMu sync.Mutex var privilegeAfterSelectHooks []PrivilegeHook +var privilegeBeforeInsertMu sync.Mutex var privilegeBeforeInsertHooks []PrivilegeHook +var privilegeAfterInsertMu sync.Mutex var privilegeAfterInsertHooks []PrivilegeHook +var privilegeBeforeUpdateMu sync.Mutex var privilegeBeforeUpdateHooks []PrivilegeHook +var privilegeAfterUpdateMu sync.Mutex var privilegeAfterUpdateHooks []PrivilegeHook +var privilegeBeforeDeleteMu sync.Mutex var privilegeBeforeDeleteHooks []PrivilegeHook +var privilegeAfterDeleteMu sync.Mutex var privilegeAfterDeleteHooks []PrivilegeHook +var privilegeBeforeUpsertMu sync.Mutex var privilegeBeforeUpsertHooks []PrivilegeHook +var privilegeAfterUpsertMu sync.Mutex var privilegeAfterUpsertHooks []PrivilegeHook // doAfterSelectHooks executes all "after Select" hooks. @@ -298,23 +307,41 @@ func (o *Privilege) doAfterUpsertHooks(ctx context.Context, exec boil.ContextExe func AddPrivilegeHook(hookPoint boil.HookPoint, privilegeHook PrivilegeHook) { switch hookPoint { case boil.AfterSelectHook: + privilegeAfterSelectMu.Lock() privilegeAfterSelectHooks = append(privilegeAfterSelectHooks, privilegeHook) + privilegeAfterSelectMu.Unlock() case boil.BeforeInsertHook: + privilegeBeforeInsertMu.Lock() privilegeBeforeInsertHooks = append(privilegeBeforeInsertHooks, privilegeHook) + privilegeBeforeInsertMu.Unlock() case boil.AfterInsertHook: + privilegeAfterInsertMu.Lock() privilegeAfterInsertHooks = append(privilegeAfterInsertHooks, privilegeHook) + privilegeAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + privilegeBeforeUpdateMu.Lock() privilegeBeforeUpdateHooks = append(privilegeBeforeUpdateHooks, privilegeHook) + privilegeBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + privilegeAfterUpdateMu.Lock() privilegeAfterUpdateHooks = append(privilegeAfterUpdateHooks, privilegeHook) + privilegeAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + privilegeBeforeDeleteMu.Lock() privilegeBeforeDeleteHooks = append(privilegeBeforeDeleteHooks, privilegeHook) + privilegeBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + privilegeAfterDeleteMu.Lock() privilegeAfterDeleteHooks = append(privilegeAfterDeleteHooks, privilegeHook) + privilegeAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + privilegeBeforeUpsertMu.Lock() privilegeBeforeUpsertHooks = append(privilegeBeforeUpsertHooks, privilegeHook) + privilegeBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + privilegeAfterUpsertMu.Lock() privilegeAfterUpsertHooks = append(privilegeAfterUpsertHooks, privilegeHook) + privilegeAfterUpsertMu.Unlock() } } @@ -429,27 +456,20 @@ func (privilegeL) LoadToken(ctx context.Context, e boil.ContextExecutor, singula } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &privilegeR{} } - args = append(args, object.TokenID) + args[object.TokenID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &privilegeR{} } - for _, a := range args { - if a == obj.TokenID { - continue Outer - } - } - - args = append(args, obj.TokenID) + args[obj.TokenID] = struct{}{} } } @@ -458,9 +478,16 @@ func (privilegeL) LoadToken(ctx context.Context, e boil.ContextExecutor, singula return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -818,7 +845,7 @@ func (o PrivilegeSlice) UpdateAll(ctx context.Context, exec boil.ContextExecutor // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *Privilege) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *Privilege) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no privileges provided for upsert") } @@ -864,7 +891,7 @@ func (o *Privilege) Upsert(ctx context.Context, exec boil.ContextExecutor, updat var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( privilegeAllColumns, privilegeColumnsWithDefault, privilegeColumnsWithoutDefault, @@ -880,12 +907,18 @@ func (o *Privilege) Upsert(ctx context.Context, exec boil.ContextExecutor, updat return errors.New("models: unable to upsert privileges, could not build update column list") } + ret := strmangle.SetComplement(privilegeAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(privilegePrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert privileges, could not build conflict column list") + } + conflict = make([]string, len(privilegePrimaryKeyColumns)) copy(conflict, privilegePrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"privileges\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"privileges\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(privilegeType, privilegeMapping, insert) if err != nil { diff --git a/models/psql_upsert.go b/models/psql_upsert.go index a7c18b85..07602da9 100644 --- a/models/psql_upsert.go +++ b/models/psql_upsert.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -11,12 +11,36 @@ import ( "github.com/volatiletech/strmangle" ) +type UpsertOptions struct { + conflictTarget string + updateSet string +} + +type UpsertOptionFunc func(o *UpsertOptions) + +func UpsertConflictTarget(conflictTarget string) UpsertOptionFunc { + return func(o *UpsertOptions) { + o.conflictTarget = conflictTarget + } +} + +func UpsertUpdateSet(updateSet string) UpsertOptionFunc { + return func(o *UpsertOptions) { + o.updateSet = updateSet + } +} + // buildUpsertQueryPostgres builds a SQL statement string using the upsertData provided. -func buildUpsertQueryPostgres(dia drivers.Dialect, tableName string, updateOnConflict bool, ret, update, conflict, whitelist []string) string { +func buildUpsertQueryPostgres(dia drivers.Dialect, tableName string, updateOnConflict bool, ret, update, conflict, whitelist []string, opts ...UpsertOptionFunc) string { conflict = strmangle.IdentQuoteSlice(dia.LQ, dia.RQ, conflict) whitelist = strmangle.IdentQuoteSlice(dia.LQ, dia.RQ, whitelist) ret = strmangle.IdentQuoteSlice(dia.LQ, dia.RQ, ret) + upsertOpts := &UpsertOptions{} + for _, o := range opts { + o(upsertOpts) + } + buf := strmangle.GetBuffer() defer strmangle.PutBuffer(buf) @@ -34,24 +58,35 @@ func buildUpsertQueryPostgres(dia drivers.Dialect, tableName string, updateOnCon columns, ) + if upsertOpts.conflictTarget != "" { + buf.WriteString(upsertOpts.conflictTarget) + } else if len(conflict) != 0 { + buf.WriteByte('(') + buf.WriteString(strings.Join(conflict, ", ")) + buf.WriteByte(')') + } + buf.WriteByte(' ') + if !updateOnConflict || len(update) == 0 { buf.WriteString("DO NOTHING") } else { - buf.WriteByte('(') - buf.WriteString(strings.Join(conflict, ", ")) - buf.WriteString(") DO UPDATE SET ") + buf.WriteString("DO UPDATE SET ") - for i, v := range update { - if len(v) == 0 { - continue - } - if i != 0 { - buf.WriteByte(',') + if upsertOpts.updateSet != "" { + buf.WriteString(upsertOpts.updateSet) + } else { + for i, v := range update { + if len(v) == 0 { + continue + } + if i != 0 { + buf.WriteByte(',') + } + quoted := strmangle.IdentQuote(dia.LQ, dia.RQ, v) + buf.WriteString(quoted) + buf.WriteString(" = EXCLUDED.") + buf.WriteString(quoted) } - quoted := strmangle.IdentQuote(dia.LQ, dia.RQ, v) - buf.WriteString(quoted) - buf.WriteString(" = EXCLUDED.") - buf.WriteString(quoted) } } diff --git a/models/rewards.go b/models/rewards.go index dcbf312a..ce512f10 100644 --- a/models/rewards.go +++ b/models/rewards.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -252,18 +252,27 @@ var ( _ = qmhelper.Where ) +var rewardAfterSelectMu sync.Mutex var rewardAfterSelectHooks []RewardHook +var rewardBeforeInsertMu sync.Mutex var rewardBeforeInsertHooks []RewardHook +var rewardAfterInsertMu sync.Mutex var rewardAfterInsertHooks []RewardHook +var rewardBeforeUpdateMu sync.Mutex var rewardBeforeUpdateHooks []RewardHook +var rewardAfterUpdateMu sync.Mutex var rewardAfterUpdateHooks []RewardHook +var rewardBeforeDeleteMu sync.Mutex var rewardBeforeDeleteHooks []RewardHook +var rewardAfterDeleteMu sync.Mutex var rewardAfterDeleteHooks []RewardHook +var rewardBeforeUpsertMu sync.Mutex var rewardBeforeUpsertHooks []RewardHook +var rewardAfterUpsertMu sync.Mutex var rewardAfterUpsertHooks []RewardHook // doAfterSelectHooks executes all "after Select" hooks. @@ -405,23 +414,41 @@ func (o *Reward) doAfterUpsertHooks(ctx context.Context, exec boil.ContextExecut func AddRewardHook(hookPoint boil.HookPoint, rewardHook RewardHook) { switch hookPoint { case boil.AfterSelectHook: + rewardAfterSelectMu.Lock() rewardAfterSelectHooks = append(rewardAfterSelectHooks, rewardHook) + rewardAfterSelectMu.Unlock() case boil.BeforeInsertHook: + rewardBeforeInsertMu.Lock() rewardBeforeInsertHooks = append(rewardBeforeInsertHooks, rewardHook) + rewardBeforeInsertMu.Unlock() case boil.AfterInsertHook: + rewardAfterInsertMu.Lock() rewardAfterInsertHooks = append(rewardAfterInsertHooks, rewardHook) + rewardAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + rewardBeforeUpdateMu.Lock() rewardBeforeUpdateHooks = append(rewardBeforeUpdateHooks, rewardHook) + rewardBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + rewardAfterUpdateMu.Lock() rewardAfterUpdateHooks = append(rewardAfterUpdateHooks, rewardHook) + rewardAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + rewardBeforeDeleteMu.Lock() rewardBeforeDeleteHooks = append(rewardBeforeDeleteHooks, rewardHook) + rewardBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + rewardAfterDeleteMu.Lock() rewardAfterDeleteHooks = append(rewardAfterDeleteHooks, rewardHook) + rewardAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + rewardBeforeUpsertMu.Lock() rewardBeforeUpsertHooks = append(rewardBeforeUpsertHooks, rewardHook) + rewardBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + rewardAfterUpsertMu.Lock() rewardAfterUpsertHooks = append(rewardAfterUpsertHooks, rewardHook) + rewardAfterUpsertMu.Unlock() } } @@ -558,30 +585,23 @@ func (rewardL) LoadAftermarketToken(ctx context.Context, e boil.ContextExecutor, } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &rewardR{} } if !queries.IsNil(object.AftermarketTokenID) { - args = append(args, object.AftermarketTokenID) + args[object.AftermarketTokenID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &rewardR{} } - for _, a := range args { - if queries.Equal(a, obj.AftermarketTokenID) { - continue Outer - } - } - if !queries.IsNil(obj.AftermarketTokenID) { - args = append(args, obj.AftermarketTokenID) + args[obj.AftermarketTokenID] = struct{}{} } } @@ -591,9 +611,16 @@ func (rewardL) LoadAftermarketToken(ctx context.Context, e boil.ContextExecutor, return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.aftermarket_devices`), - qm.WhereIn(`identity_api.aftermarket_devices.id in ?`, args...), + qm.WhereIn(`identity_api.aftermarket_devices.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -682,30 +709,23 @@ func (rewardL) LoadSyntheticToken(ctx context.Context, e boil.ContextExecutor, s } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &rewardR{} } if !queries.IsNil(object.SyntheticTokenID) { - args = append(args, object.SyntheticTokenID) + args[object.SyntheticTokenID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &rewardR{} } - for _, a := range args { - if queries.Equal(a, obj.SyntheticTokenID) { - continue Outer - } - } - if !queries.IsNil(obj.SyntheticTokenID) { - args = append(args, obj.SyntheticTokenID) + args[obj.SyntheticTokenID] = struct{}{} } } @@ -715,9 +735,16 @@ func (rewardL) LoadSyntheticToken(ctx context.Context, e boil.ContextExecutor, s return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.synthetic_devices`), - qm.WhereIn(`identity_api.synthetic_devices.id in ?`, args...), + qm.WhereIn(`identity_api.synthetic_devices.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -806,27 +833,20 @@ func (rewardL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, singular } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &rewardR{} } - args = append(args, object.VehicleID) + args[object.VehicleID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &rewardR{} } - for _, a := range args { - if a == obj.VehicleID { - continue Outer - } - } - - args = append(args, obj.VehicleID) + args[obj.VehicleID] = struct{}{} } } @@ -835,9 +855,16 @@ func (rewardL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, singular return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1355,7 +1382,7 @@ func (o RewardSlice) UpdateAll(ctx context.Context, exec boil.ContextExecutor, c // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *Reward) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *Reward) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no rewards provided for upsert") } @@ -1401,7 +1428,7 @@ func (o *Reward) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOn var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( rewardAllColumns, rewardColumnsWithDefault, rewardColumnsWithoutDefault, @@ -1417,12 +1444,18 @@ func (o *Reward) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOn return errors.New("models: unable to upsert rewards, could not build update column list") } + ret := strmangle.SetComplement(rewardAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(rewardPrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert rewards, could not build conflict column list") + } + conflict = make([]string, len(rewardPrimaryKeyColumns)) copy(conflict, rewardPrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"rewards\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"rewards\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(rewardType, rewardMapping, insert) if err != nil { diff --git a/models/synthetic_devices.go b/models/synthetic_devices.go index 53d976e4..99a57a3c 100644 --- a/models/synthetic_devices.go +++ b/models/synthetic_devices.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -155,18 +155,27 @@ var ( _ = qmhelper.Where ) +var syntheticDeviceAfterSelectMu sync.Mutex var syntheticDeviceAfterSelectHooks []SyntheticDeviceHook +var syntheticDeviceBeforeInsertMu sync.Mutex var syntheticDeviceBeforeInsertHooks []SyntheticDeviceHook +var syntheticDeviceAfterInsertMu sync.Mutex var syntheticDeviceAfterInsertHooks []SyntheticDeviceHook +var syntheticDeviceBeforeUpdateMu sync.Mutex var syntheticDeviceBeforeUpdateHooks []SyntheticDeviceHook +var syntheticDeviceAfterUpdateMu sync.Mutex var syntheticDeviceAfterUpdateHooks []SyntheticDeviceHook +var syntheticDeviceBeforeDeleteMu sync.Mutex var syntheticDeviceBeforeDeleteHooks []SyntheticDeviceHook +var syntheticDeviceAfterDeleteMu sync.Mutex var syntheticDeviceAfterDeleteHooks []SyntheticDeviceHook +var syntheticDeviceBeforeUpsertMu sync.Mutex var syntheticDeviceBeforeUpsertHooks []SyntheticDeviceHook +var syntheticDeviceAfterUpsertMu sync.Mutex var syntheticDeviceAfterUpsertHooks []SyntheticDeviceHook // doAfterSelectHooks executes all "after Select" hooks. @@ -308,23 +317,41 @@ func (o *SyntheticDevice) doAfterUpsertHooks(ctx context.Context, exec boil.Cont func AddSyntheticDeviceHook(hookPoint boil.HookPoint, syntheticDeviceHook SyntheticDeviceHook) { switch hookPoint { case boil.AfterSelectHook: + syntheticDeviceAfterSelectMu.Lock() syntheticDeviceAfterSelectHooks = append(syntheticDeviceAfterSelectHooks, syntheticDeviceHook) + syntheticDeviceAfterSelectMu.Unlock() case boil.BeforeInsertHook: + syntheticDeviceBeforeInsertMu.Lock() syntheticDeviceBeforeInsertHooks = append(syntheticDeviceBeforeInsertHooks, syntheticDeviceHook) + syntheticDeviceBeforeInsertMu.Unlock() case boil.AfterInsertHook: + syntheticDeviceAfterInsertMu.Lock() syntheticDeviceAfterInsertHooks = append(syntheticDeviceAfterInsertHooks, syntheticDeviceHook) + syntheticDeviceAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + syntheticDeviceBeforeUpdateMu.Lock() syntheticDeviceBeforeUpdateHooks = append(syntheticDeviceBeforeUpdateHooks, syntheticDeviceHook) + syntheticDeviceBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + syntheticDeviceAfterUpdateMu.Lock() syntheticDeviceAfterUpdateHooks = append(syntheticDeviceAfterUpdateHooks, syntheticDeviceHook) + syntheticDeviceAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + syntheticDeviceBeforeDeleteMu.Lock() syntheticDeviceBeforeDeleteHooks = append(syntheticDeviceBeforeDeleteHooks, syntheticDeviceHook) + syntheticDeviceBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + syntheticDeviceAfterDeleteMu.Lock() syntheticDeviceAfterDeleteHooks = append(syntheticDeviceAfterDeleteHooks, syntheticDeviceHook) + syntheticDeviceAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + syntheticDeviceBeforeUpsertMu.Lock() syntheticDeviceBeforeUpsertHooks = append(syntheticDeviceBeforeUpsertHooks, syntheticDeviceHook) + syntheticDeviceBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + syntheticDeviceAfterUpsertMu.Lock() syntheticDeviceAfterUpsertHooks = append(syntheticDeviceAfterUpsertHooks, syntheticDeviceHook) + syntheticDeviceAfterUpsertMu.Unlock() } } @@ -453,27 +480,20 @@ func (syntheticDeviceL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &syntheticDeviceR{} } - args = append(args, object.VehicleID) + args[object.VehicleID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &syntheticDeviceR{} } - for _, a := range args { - if a == obj.VehicleID { - continue Outer - } - } - - args = append(args, obj.VehicleID) + args[obj.VehicleID] = struct{}{} } } @@ -482,9 +502,16 @@ func (syntheticDeviceL) LoadVehicle(ctx context.Context, e boil.ContextExecutor, return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.vehicles`), - qm.WhereIn(`identity_api.vehicles.id in ?`, args...), + qm.WhereIn(`identity_api.vehicles.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -573,26 +600,18 @@ func (syntheticDeviceL) LoadSyntheticTokenRewards(ctx context.Context, e boil.Co } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &syntheticDeviceR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &syntheticDeviceR{} } - - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -600,9 +619,16 @@ func (syntheticDeviceL) LoadSyntheticTokenRewards(ctx context.Context, e boil.Co return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.rewards`), - qm.WhereIn(`identity_api.rewards.synthetic_token_id in ?`, args...), + qm.WhereIn(`identity_api.rewards.synthetic_token_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1083,7 +1109,7 @@ func (o SyntheticDeviceSlice) UpdateAll(ctx context.Context, exec boil.ContextEx // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *SyntheticDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *SyntheticDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no synthetic_devices provided for upsert") } @@ -1129,7 +1155,7 @@ func (o *SyntheticDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( syntheticDeviceAllColumns, syntheticDeviceColumnsWithDefault, syntheticDeviceColumnsWithoutDefault, @@ -1145,12 +1171,18 @@ func (o *SyntheticDevice) Upsert(ctx context.Context, exec boil.ContextExecutor, return errors.New("models: unable to upsert synthetic_devices, could not build update column list") } + ret := strmangle.SetComplement(syntheticDeviceAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(syntheticDevicePrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert synthetic_devices, could not build conflict column list") + } + conflict = make([]string, len(syntheticDevicePrimaryKeyColumns)) copy(conflict, syntheticDevicePrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"synthetic_devices\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"synthetic_devices\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(syntheticDeviceType, syntheticDeviceMapping, insert) if err != nil { diff --git a/models/vehicles.go b/models/vehicles.go index 4c6fcf69..cd6b6b84 100644 --- a/models/vehicles.go +++ b/models/vehicles.go @@ -1,4 +1,4 @@ -// Code generated by SQLBoiler 4.14.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. +// Code generated by SQLBoiler 4.16.2 (https://github.com/volatiletech/sqlboiler). DO NOT EDIT. // This file is meant to be re-generated in place and/or deleted at any time. package models @@ -217,18 +217,27 @@ var ( _ = qmhelper.Where ) +var vehicleAfterSelectMu sync.Mutex var vehicleAfterSelectHooks []VehicleHook +var vehicleBeforeInsertMu sync.Mutex var vehicleBeforeInsertHooks []VehicleHook +var vehicleAfterInsertMu sync.Mutex var vehicleAfterInsertHooks []VehicleHook +var vehicleBeforeUpdateMu sync.Mutex var vehicleBeforeUpdateHooks []VehicleHook +var vehicleAfterUpdateMu sync.Mutex var vehicleAfterUpdateHooks []VehicleHook +var vehicleBeforeDeleteMu sync.Mutex var vehicleBeforeDeleteHooks []VehicleHook +var vehicleAfterDeleteMu sync.Mutex var vehicleAfterDeleteHooks []VehicleHook +var vehicleBeforeUpsertMu sync.Mutex var vehicleBeforeUpsertHooks []VehicleHook +var vehicleAfterUpsertMu sync.Mutex var vehicleAfterUpsertHooks []VehicleHook // doAfterSelectHooks executes all "after Select" hooks. @@ -370,23 +379,41 @@ func (o *Vehicle) doAfterUpsertHooks(ctx context.Context, exec boil.ContextExecu func AddVehicleHook(hookPoint boil.HookPoint, vehicleHook VehicleHook) { switch hookPoint { case boil.AfterSelectHook: + vehicleAfterSelectMu.Lock() vehicleAfterSelectHooks = append(vehicleAfterSelectHooks, vehicleHook) + vehicleAfterSelectMu.Unlock() case boil.BeforeInsertHook: + vehicleBeforeInsertMu.Lock() vehicleBeforeInsertHooks = append(vehicleBeforeInsertHooks, vehicleHook) + vehicleBeforeInsertMu.Unlock() case boil.AfterInsertHook: + vehicleAfterInsertMu.Lock() vehicleAfterInsertHooks = append(vehicleAfterInsertHooks, vehicleHook) + vehicleAfterInsertMu.Unlock() case boil.BeforeUpdateHook: + vehicleBeforeUpdateMu.Lock() vehicleBeforeUpdateHooks = append(vehicleBeforeUpdateHooks, vehicleHook) + vehicleBeforeUpdateMu.Unlock() case boil.AfterUpdateHook: + vehicleAfterUpdateMu.Lock() vehicleAfterUpdateHooks = append(vehicleAfterUpdateHooks, vehicleHook) + vehicleAfterUpdateMu.Unlock() case boil.BeforeDeleteHook: + vehicleBeforeDeleteMu.Lock() vehicleBeforeDeleteHooks = append(vehicleBeforeDeleteHooks, vehicleHook) + vehicleBeforeDeleteMu.Unlock() case boil.AfterDeleteHook: + vehicleAfterDeleteMu.Lock() vehicleAfterDeleteHooks = append(vehicleAfterDeleteHooks, vehicleHook) + vehicleAfterDeleteMu.Unlock() case boil.BeforeUpsertHook: + vehicleBeforeUpsertMu.Lock() vehicleBeforeUpsertHooks = append(vehicleBeforeUpsertHooks, vehicleHook) + vehicleBeforeUpsertMu.Unlock() case boil.AfterUpsertHook: + vehicleAfterUpsertMu.Lock() vehicleAfterUpsertHooks = append(vehicleAfterUpsertHooks, vehicleHook) + vehicleAfterUpsertMu.Unlock() } } @@ -568,30 +595,23 @@ func (vehicleL) LoadManufacturer(ctx context.Context, e boil.ContextExecutor, si } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } if !queries.IsNil(object.ManufacturerID) { - args = append(args, object.ManufacturerID) + args[object.ManufacturerID] = struct{}{} } } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - for _, a := range args { - if queries.Equal(a, obj.ManufacturerID) { - continue Outer - } - } - if !queries.IsNil(obj.ManufacturerID) { - args = append(args, obj.ManufacturerID) + args[obj.ManufacturerID] = struct{}{} } } @@ -601,9 +621,16 @@ func (vehicleL) LoadManufacturer(ctx context.Context, e boil.ContextExecutor, si return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.manufacturers`), - qm.WhereIn(`identity_api.manufacturers.id in ?`, args...), + qm.WhereIn(`identity_api.manufacturers.id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -692,26 +719,19 @@ func (vehicleL) LoadAftermarketDevice(ctx context.Context, e boil.ContextExecuto } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -719,9 +739,16 @@ func (vehicleL) LoadAftermarketDevice(ctx context.Context, e boil.ContextExecuto return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.aftermarket_devices`), - qm.WhereIn(`identity_api.aftermarket_devices.vehicle_id in ?`, args...), + qm.WhereIn(`identity_api.aftermarket_devices.vehicle_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -809,26 +836,18 @@ func (vehicleL) LoadDCNS(ctx context.Context, e boil.ContextExecutor, singular b } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - - for _, a := range args { - if queries.Equal(a, obj.ID) { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -836,9 +855,16 @@ func (vehicleL) LoadDCNS(ctx context.Context, e boil.ContextExecutor, singular b return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.dcns`), - qm.WhereIn(`identity_api.dcns.vehicle_id in ?`, args...), + qm.WhereIn(`identity_api.dcns.vehicle_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -923,26 +949,18 @@ func (vehicleL) LoadTokenPrivileges(ctx context.Context, e boil.ContextExecutor, } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - - for _, a := range args { - if a == obj.ID { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -950,9 +968,16 @@ func (vehicleL) LoadTokenPrivileges(ctx context.Context, e boil.ContextExecutor, return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.privileges`), - qm.WhereIn(`identity_api.privileges.token_id in ?`, args...), + qm.WhereIn(`identity_api.privileges.token_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1037,26 +1062,18 @@ func (vehicleL) LoadRewards(ctx context.Context, e boil.ContextExecutor, singula } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - - for _, a := range args { - if a == obj.ID { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -1064,9 +1081,16 @@ func (vehicleL) LoadRewards(ctx context.Context, e boil.ContextExecutor, singula return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.rewards`), - qm.WhereIn(`identity_api.rewards.vehicle_id in ?`, args...), + qm.WhereIn(`identity_api.rewards.vehicle_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1151,26 +1175,18 @@ func (vehicleL) LoadSyntheticDevices(ctx context.Context, e boil.ContextExecutor } } - args := make([]interface{}, 0, 1) + args := make(map[interface{}]struct{}) if singular { if object.R == nil { object.R = &vehicleR{} } - args = append(args, object.ID) + args[object.ID] = struct{}{} } else { - Outer: for _, obj := range slice { if obj.R == nil { obj.R = &vehicleR{} } - - for _, a := range args { - if a == obj.ID { - continue Outer - } - } - - args = append(args, obj.ID) + args[obj.ID] = struct{}{} } } @@ -1178,9 +1194,16 @@ func (vehicleL) LoadSyntheticDevices(ctx context.Context, e boil.ContextExecutor return nil } + argsSlice := make([]interface{}, len(args)) + i := 0 + for arg := range args { + argsSlice[i] = arg + i++ + } + query := NewQuery( qm.From(`identity_api.synthetic_devices`), - qm.WhereIn(`identity_api.synthetic_devices.vehicle_id in ?`, args...), + qm.WhereIn(`identity_api.synthetic_devices.vehicle_id in ?`, argsSlice...), ) if mods != nil { mods.Apply(query) @@ -1927,7 +1950,7 @@ func (o VehicleSlice) UpdateAll(ctx context.Context, exec boil.ContextExecutor, // Upsert attempts an insert using an executor, and does an update or ignore on conflict. // See boil.Columns documentation for how to properly use updateColumns and insertColumns. -func (o *Vehicle) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns) error { +func (o *Vehicle) Upsert(ctx context.Context, exec boil.ContextExecutor, updateOnConflict bool, conflictColumns []string, updateColumns, insertColumns boil.Columns, opts ...UpsertOptionFunc) error { if o == nil { return errors.New("models: no vehicles provided for upsert") } @@ -1973,7 +1996,7 @@ func (o *Vehicle) Upsert(ctx context.Context, exec boil.ContextExecutor, updateO var err error if !cached { - insert, ret := insertColumns.InsertColumnSet( + insert, _ := insertColumns.InsertColumnSet( vehicleAllColumns, vehicleColumnsWithDefault, vehicleColumnsWithoutDefault, @@ -1989,12 +2012,18 @@ func (o *Vehicle) Upsert(ctx context.Context, exec boil.ContextExecutor, updateO return errors.New("models: unable to upsert vehicles, could not build update column list") } + ret := strmangle.SetComplement(vehicleAllColumns, strmangle.SetIntersect(insert, update)) + conflict := conflictColumns - if len(conflict) == 0 { + if len(conflict) == 0 && updateOnConflict && len(update) != 0 { + if len(vehiclePrimaryKeyColumns) == 0 { + return errors.New("models: unable to upsert vehicles, could not build conflict column list") + } + conflict = make([]string, len(vehiclePrimaryKeyColumns)) copy(conflict, vehiclePrimaryKeyColumns) } - cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"vehicles\"", updateOnConflict, ret, update, conflict, insert) + cache.query = buildUpsertQueryPostgres(dialect, "\"identity_api\".\"vehicles\"", updateOnConflict, ret, update, conflict, insert, opts...) cache.valueMapping, err = queries.BindMapping(vehicleType, vehicleMapping, insert) if err != nil {