Skip to content

Commit 7669ce0

Browse files
authored
Merge branch 'master' into feature/generics
2 parents f7cc47b + 14f5dc7 commit 7669ce0

File tree

22 files changed

+184
-70
lines changed

22 files changed

+184
-70
lines changed

config.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,29 @@ func (cfg *Config) WithImportPkgPath(paths ...string) {
118118
cfg.importPkgPaths = append(cfg.importPkgPaths, paths...)
119119
}
120120

121+
// WithDataTypesNullType configures the types of fields to use their datatypes nullable counterparts.
122+
/**
123+
*
124+
* @param {boolean} all - If true, all basic types of fields will be replaced with their `datatypes.Null[T]` types.
125+
* If false, only fields that are allowed to be null will be replaced with `datatypes.Null[T]` types.
126+
*
127+
* Examples:
128+
*
129+
* When `all` is true:
130+
* - `int64` will be replaced with `datatypes.NullInt64`
131+
* - `string` will be replaced with `datatypes.NullString`
132+
*
133+
* When `all` is false:
134+
* - Only fields that can be null (e.g., `*string` or `*int`) will be replaced with `datatypes.Null[T]` types.
135+
*
136+
* Note:
137+
* Ensure that proper error handling is implemented when converting
138+
* fields to their `datatypes.Null[T]` types to avoid runtime issues.
139+
*/
140+
func (cfg *Config) WithDataTypesNullType(all bool) {
141+
cfg.WithOpts(WithDataTypesNullType(all))
142+
}
143+
121144
// Revise format path and db
122145
func (cfg *Config) Revise() (err error) {
123146
if strings.TrimSpace(cfg.ModelPkgPath) == "" {

do.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func (d *DO) ReplaceConnPool(pool gorm.ConnPool) {
7777
// UseModel specify a data model structure as a source for table name
7878
func (d *DO) UseModel(model interface{}) {
7979
d.modelType = d.indirect(model)
80-
80+
d.db = d.db.Model(model).Session(&gorm.Session{})
8181
err := d.db.Statement.Parse(model)
8282
if err != nil {
8383
panic(fmt.Errorf("Cannot parse model: %+v\n%w", model, err))
@@ -710,7 +710,7 @@ func (d *DO) Updates(value interface{}) (info ResultInfo, err error) {
710710
valTyp = rawTyp
711711
}
712712

713-
tx := d.db
713+
tx := d.db.Model(d.newResultPointer())
714714
if d.backfillData != nil {
715715
tx = tx.Model(d.backfillData)
716716
}

do_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,24 @@ func TestDO_methods(t *testing.T) {
141141
ExpectedVars: []interface{}{uint(10)},
142142
Result: "WHERE `id` = ?",
143143
},
144+
{
145+
Expr: u.Where(u.Name.Substring(1)),
146+
Result: "WHERE SUBSTRING(`name`,1)",
147+
},
148+
{
149+
Expr: u.Where(u.Name.Substring(1, 6), u.ID.Eq(10)),
150+
ExpectedVars: []interface{}{uint(10)},
151+
Result: "WHERE SUBSTRING(`name`,1,6) AND `id` = ?",
152+
},
153+
{
154+
Expr: u.Where(u.Name.Substr(1), u.ID.Eq(10)),
155+
ExpectedVars: []interface{}{uint(10)},
156+
Result: "WHERE SUBSTR(`name`,1) AND `id` = ?",
157+
},
158+
{
159+
Expr: u.Where(u.Name.Substr(1, 6)),
160+
Result: "WHERE SUBSTR(`name`,1,6)",
161+
},
144162
{
145163
Expr: u.Where(u.Name.Eq("tom"), u.Age.Gt(18)),
146164
ExpectedVars: []interface{}{"tom", 18},

field_options.go

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gen
22

33
import (
4+
"fmt"
45
"reflect"
56
"regexp"
67
"strings"
@@ -26,6 +27,50 @@ var (
2627
}
2728
}
2829

30+
// WithDataTypesNullType configures the types of fields to use their datatypes nullable counterparts.
31+
/**
32+
*
33+
* @param {boolean} all - If true, all basic types of fields will be replaced with their `datatypes.Null[T]` types.
34+
* If false, only fields that are allowed to be null will be replaced with `datatypes.Null[T]` types.
35+
*
36+
* Examples:
37+
*
38+
* When `all` is true:
39+
* - `int64` will be replaced with `datatypes.NullInt64`
40+
* - `string` will be replaced with `datatypes.NullString`
41+
*
42+
* When `all` is false:
43+
* - Only fields that can be null (e.g., `*string` or `*int`) will be replaced with `datatypes.Null[T]` types.
44+
*
45+
* Note:
46+
* Ensure that proper error handling is implemented when converting
47+
* fields to their `datatypes.Null[T]` types to avoid runtime issues.
48+
*/
49+
WithDataTypesNullType = func(all bool) model.ModifyFieldOpt {
50+
return func(f *model.Field) *model.Field {
51+
ft := f.Type
52+
nullable := false
53+
if strings.HasPrefix(ft, "*") {
54+
nullable = true
55+
ft = strings.TrimLeft(ft, "*")
56+
}
57+
if !all && !nullable {
58+
return f
59+
}
60+
switch ft {
61+
case "time.Time", "string", "int", "int8", "int16",
62+
"int32", "int64", "uint", "uint8", "uint16", "uint32",
63+
"uint64", "float64", "float32", "byte", "bool":
64+
ft = fmt.Sprintf("datatypes.Null[%s]", ft)
65+
default:
66+
return f
67+
}
68+
f.CustomGenType = f.GenType()
69+
f.Type = ft
70+
return f
71+
}
72+
}
73+
2974
// FieldNew add new field (any type your want)
3075
FieldNew = func(fieldName, fieldType string, fieldTag field.Tag) model.CreateFieldOpt {
3176
return func(*model.Field) *model.Field {

generator.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"database/sql"
77
"fmt"
88
"io"
9-
"io/ioutil"
109
"log"
1110
"os"
1211
"path/filepath"
@@ -577,7 +576,7 @@ func (g *Generator) output(fileName string, content []byte) error {
577576
}
578577
return fmt.Errorf("cannot format file: %w", err)
579578
}
580-
return ioutil.WriteFile(fileName, result, 0640)
579+
return os.WriteFile(fileName, result, 0640)
581580
}
582581

583582
func (g *Generator) pushQueryStructMeta(meta *generate.QueryStructMeta) (*genInfo, error) {

go.mod

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,20 @@ module gorm.io/gen
33
go 1.18
44

55
require (
6-
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8
7-
golang.org/x/tools v0.20.0
8-
gorm.io/datatypes v1.1.1-0.20230130040222-c43177d3cf8c
9-
gorm.io/gorm v1.25.9
6+
golang.org/x/tools v0.17.0
7+
gorm.io/datatypes v1.2.4
8+
gorm.io/gorm v1.25.11
109
gorm.io/hints v1.1.0
1110
gorm.io/plugin/dbresolver v1.5.0
1211
)
1312

1413
require (
15-
github.com/go-sql-driver/mysql v1.7.0 // indirect
14+
filippo.io/edwards25519 v1.1.0 // indirect
15+
github.com/go-sql-driver/mysql v1.8.1 // indirect
16+
github.com/google/uuid v1.3.0 // indirect
1617
github.com/jinzhu/inflection v1.0.0 // indirect
1718
github.com/jinzhu/now v1.1.5 // indirect
18-
golang.org/x/crypto v0.14.0 // indirect
19-
golang.org/x/mod v0.17.0 // indirect
20-
golang.org/x/sync v0.7.0 // indirect
21-
gorm.io/driver/mysql v1.4.4 // indirect
19+
golang.org/x/mod v0.14.0 // indirect
20+
golang.org/x/text v0.14.0 // indirect
21+
gorm.io/driver/mysql v1.5.6 // indirect
2222
)

go.sum

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
1+
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
2+
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
13
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
35
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
4-
github.com/go-sql-driver/mysql v1.7.0 h1:ueSltNNllEqE3qcWBTD0iQd3IpL/6U+mJxLkazJ7YPc=
56
github.com/go-sql-driver/mysql v1.7.0/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
7+
github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y=
8+
github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
69
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA=
710
github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A=
8-
github.com/jackc/chunkreader/v2 v2.0.1 h1:i+RDz65UE+mmpjTfyz0MoVTnzeYxroil2G82ki7MGG8=
9-
github.com/jackc/pgconn v1.13.0 h1:3L1XMNV2Zvca/8BYhzcRFS70Lr0WlDg16Di6SFGAbys=
10-
github.com/jackc/pgio v1.0.0 h1:g12B9UwVnzGhueNavwioyEEpAmqMe1E/BN9ES+8ovkE=
11+
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
12+
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
1113
github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM=
12-
github.com/jackc/pgproto3/v2 v2.3.1 h1:nwj7qwf0S+Q7ISFfBndqeLwSwxs+4DPsbRFjECT1Y4Y=
13-
github.com/jackc/pgservicefile v0.0.0-20200714003250-2b9c44734f2b h1:C8S2+VttkHFdOOCXJe+YGfa4vHYwlt4Zx+IVXQ97jYg=
14-
github.com/jackc/pgtype v1.12.0 h1:Dlq8Qvcch7kiehm8wPGIW0W3KsCCHJnRacKW0UM8n5w=
15-
github.com/jackc/pgx/v4 v4.17.2 h1:0Ut0rpeKwvIVbMQ1KbMBU4h6wxehBI535LK6Flheh8E=
14+
github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 h1:L0QtFUgDarD7Fpv9jeVMgy/+Ec0mtnmYuImjTz6dtDA=
15+
github.com/jackc/pgx/v5 v5.5.5 h1:amBjrZVmksIdNjxGW/IiIMzxMKZFelXbUoPNb+8sjQw=
16+
github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk=
1617
github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=
1718
github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=
1819
github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=
@@ -25,34 +26,32 @@ github.com/microsoft/go-mssqldb v0.17.0 h1:Fto83dMZPnYv1Zwx5vHHxpNraeEaUlQ/hhHLg
2526
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2627
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
2728
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
28-
golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc=
29-
golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4=
30-
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8 h1:ESSUROHIBHg7USnszlcdmjBEwdMj9VUvU+OPk4yl2mc=
31-
golang.org/x/exp v0.0.0-20240409090435-93d18d7e34b8/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI=
32-
golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA=
33-
golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
34-
golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M=
35-
golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
36-
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
37-
golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY=
38-
golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg=
29+
golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30=
30+
golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0=
31+
golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
32+
golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ=
33+
golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ=
34+
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
35+
golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc=
36+
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
3937
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
4038
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
41-
gorm.io/datatypes v1.1.1-0.20230130040222-c43177d3cf8c h1:jWdr7cHgl8c/ua5vYbR2WhSp+NQmzhsj0xoY3foTzW8=
42-
gorm.io/datatypes v1.1.1-0.20230130040222-c43177d3cf8c/go.mod h1:SH2K9R+2RMjuX1CkCONrPwoe9JzVv2hkQvEu4bXGojE=
39+
gorm.io/datatypes v1.2.4 h1:uZmGAcK/QZ0uyfCuVg0VQY1ZmV9h1fuG0tMwKByO1z4=
40+
gorm.io/datatypes v1.2.4/go.mod h1:f4BsLcFAX67szSv8svwLRjklArSHAvHLeE3pXAS5DZI=
4341
gorm.io/driver/mysql v1.4.3/go.mod h1:sSIebwZAVPiT+27jK9HIwvsqOGKx3YMPmrA3mBJR10c=
44-
gorm.io/driver/mysql v1.4.4 h1:MX0K9Qvy0Na4o7qSC/YI7XxqUw5KDw01umqgID+svdQ=
45-
gorm.io/driver/mysql v1.4.4/go.mod h1:BCg8cKI+R0j/rZRQxeKis/forqRwRSYOR8OM3Wo6hOM=
46-
gorm.io/driver/postgres v1.4.5 h1:mTeXTTtHAgnS9PgmhN2YeUbazYpLhUI1doLnw42XUZc=
42+
gorm.io/driver/mysql v1.5.6 h1:Ld4mkIickM+EliaQZQx3uOJDJHtrd70MxAUqWqlx3Y8=
43+
gorm.io/driver/mysql v1.5.6/go.mod h1:sEtPWMiqiN1N1cMXoXmBbd8C6/l+TESwriotuRRpkDM=
44+
gorm.io/driver/postgres v1.5.0 h1:u2FXTy14l45qc3UeCJ7QaAXZmZfDDv0YrthvmRq1l0U=
4745
gorm.io/driver/sqlite v1.1.6/go.mod h1:W8LmC/6UvVbHKah0+QOC7Ja66EaZXHwUTjgXY8YNWX8=
4846
gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU=
4947
gorm.io/driver/sqlserver v1.4.1 h1:t4r4r6Jam5E6ejqP7N82qAJIJAht27EGT41HyPfXRw0=
5048
gorm.io/gorm v1.21.15/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
5149
gorm.io/gorm v1.22.2/go.mod h1:F+OptMscr0P2F2qU97WT1WimdH9GaQPoDW7AYd5i2Y0=
5250
gorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=
5351
gorm.io/gorm v1.25.2/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
54-
gorm.io/gorm v1.25.9 h1:wct0gxZIELDk8+ZqF/MVnHLkA1rvYlBWUMv2EdsK1g8=
55-
gorm.io/gorm v1.25.9/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
52+
gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
53+
gorm.io/gorm v1.25.11 h1:/Wfyg1B/je1hnDx3sMkX+gAlxrlZpn6X0BXRlwXlvHg=
54+
gorm.io/gorm v1.25.11/go.mod h1:xh7N7RHfYlNc5EmcI/El95gXusucDrQnHXe0+CgWcLQ=
5655
gorm.io/hints v1.1.0 h1:Lp4z3rxREufSdxn4qmkK3TLDltrM10FLTHiuqwDPvXw=
5756
gorm.io/hints v1.1.0/go.mod h1:lKQ0JjySsPBj3uslFzY3JhYDtqEwzm+G1hv8rWujB6Y=
5857
gorm.io/plugin/dbresolver v1.5.0 h1:XVHLxh775eP0CqVh3vcfJtYqja3uFl5Wr3cKlY8jgDY=

internal/generate/query.go

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,12 @@ func (b *QueryStructMeta) ReviseDIYMethod() error {
188188
}
189189
method.Receiver.Package = ""
190190
method.Receiver.Type = b.ModelStructName
191+
b.pasreTableName(method)
191192
methods = append(methods, method)
192193
methodMap[method.MethodName] = true
193194
}
194195
if tableName == nil {
195196
methods = append(methods, parser.DefaultMethodTableName(b.ModelStructName))
196-
} else {
197-
// e.g. return "@@table" => return TableNameUser
198-
tableName.Body = strings.ReplaceAll(tableName.Body, "\"@@table\"", "TableName"+b.ModelStructName)
199-
// e.g. return "t_@@table" => return "t_user"
200-
tableName.Body = strings.ReplaceAll(tableName.Body, "@@table", b.TableName)
201197
}
202198
b.ModelMethods = methods
203199

@@ -206,7 +202,16 @@ func (b *QueryStructMeta) ReviseDIYMethod() error {
206202
}
207203
return nil
208204
}
205+
func (b *QueryStructMeta) pasreTableName(method *parser.Method) {
206+
if method == nil || method.Body == "" || !strings.Contains(method.Body, "@@table") {
207+
return
208+
}
209+
// e.g. return "@@table" => return TableNameUser
210+
method.Body = strings.ReplaceAll(method.Body, "\"@@table\"", "TableName"+b.ModelStructName)
211+
// e.g. return "t_@@table" => return "t_user"
212+
method.Body = strings.ReplaceAll(method.Body, "@@table", b.TableName)
209213

214+
}
210215
func (b *QueryStructMeta) addMethodFromAddMethodOpt(methods ...interface{}) *QueryStructMeta {
211216
for _, method := range methods {
212217
modelMethods, err := parser.GetModelMethod(method)

internal/model/tbl_column.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func (c *Column) needDefaultTag(defaultTagValue string) bool {
136136
case reflect.String:
137137
return defaultTagValue != ""
138138
case reflect.Struct:
139-
return strings.Trim(defaultTagValue, "'0:- ") != ""
139+
return strings.Trim(defaultTagValue, "'0:-") != ""
140140
}
141141
return c.Name() != "created_at" && c.Name() != "updated_at"
142142
}

tests/.expect/dal_3/query/credit_cards.gen.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_3/query/customers.gen.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_3/query/people.gen.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_3/query/users.gen.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/.expect/dal_4/query/banks.gen.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)