Skip to content

Commit a5fd04b

Browse files
WilliamDeKeyzerWilliam De Keyzer
and
William De Keyzer
authored
fix (#6)
Co-authored-by: William De Keyzer <William.De.Keyzer@ing.com>
1 parent b1c789f commit a5fd04b

File tree

5 files changed

+15
-15
lines changed

5 files changed

+15
-15
lines changed

.github/workflows/test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
runs-on: ubuntu-latest
88
strategy:
99
matrix:
10-
go-version: [ '1.24' ]
10+
go-version: [ '1.24.1' ]
1111
steps:
1212
- uses: actions/checkout@v3
1313

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/google/uuid v1.3.0
77
github.com/ing-bank/gormtestutil v0.0.0
88
github.com/stretchr/testify v1.8.0
9-
gorm.io/gorm v1.26.0
9+
gorm.io/gorm v1.30.0
1010
)
1111

1212
require (
@@ -16,7 +16,7 @@ require (
1616
github.com/kr/text v0.2.0 // indirect
1717
github.com/mattn/go-sqlite3 v1.14.15 // indirect
1818
github.com/pmezard/go-difflib v1.0.0 // indirect
19-
golang.org/x/text v0.24.0 // indirect
19+
golang.org/x/text v0.25.0 // indirect
2020
gopkg.in/yaml.v3 v3.0.1 // indirect
2121
gorm.io/driver/sqlite v1.4.3 // indirect
2222
)

go.sum

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSS
2626
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
2727
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
2828
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
29-
golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
30-
golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
29+
golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
30+
golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
3131
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3232
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
3333
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
@@ -37,5 +37,5 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
3737
gorm.io/driver/sqlite v1.4.3 h1:HBBcZSDnWi5BW3B3rwvVTc510KGkBkexlOg0QrmLUuU=
3838
gorm.io/driver/sqlite v1.4.3/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI=
3939
gorm.io/gorm v1.24.0/go.mod h1:DVrVomtaYTbqs7gB/x2uVvqnXzv0nqjB396B8cG4dBA=
40-
gorm.io/gorm v1.26.0 h1:9lqQVPG5aNNS6AyHdRiwScAVnXHg/L/Srzx55G5fOgs=
41-
gorm.io/gorm v1.26.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=
40+
gorm.io/gorm v1.30.0 h1:qbT5aPv1UH8gI99OsRlvDToLxW5zR7FzS9acZDOZcgs=
41+
gorm.io/gorm v1.30.0/go.mod h1:8Z33v652h4//uMA76KjeDH8mJXPm1QNCYrMeatR0DOE=

query.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ func (d *gormLike) replaceExpressions(db *gorm.DB, expressions []clause.Expressi
2323
cond.Exprs = d.replaceExpressions(db, cond.Exprs)
2424
expressions[index] = cond
2525
case clause.Eq:
26-
columnName, columnOk := cond.Column.(string)
26+
column, columnOk := cond.Column.(clause.Column)
2727
if !columnOk {
2828
continue
2929
}
3030

3131
// Get the `gormlike` value
3232
var tagValue string
33-
dbField, ok := db.Statement.Schema.FieldsByDBName[columnName]
33+
dbField, ok := db.Statement.Schema.FieldsByDBName[column.Name]
3434
if ok {
3535
tagValue = dbField.Tag.Get(tagName)
3636
}
@@ -55,22 +55,22 @@ func (d *gormLike) replaceExpressions(db *gorm.DB, expressions []clause.Expressi
5555
continue
5656
}
5757

58-
condition := fmt.Sprintf("CAST(%s as varchar) LIKE ?", cond.Column)
58+
condition := fmt.Sprintf("CAST(%s as varchar) LIKE ?", column.Name)
5959

6060
if d.replaceCharacter != "" {
6161
value = strings.ReplaceAll(value, d.replaceCharacter, "%")
6262
}
6363

6464
expressions[index] = db.Session(&gorm.Session{NewDB: true}).Where(condition, value).Statement.Clauses["WHERE"].Expression
6565
case clause.IN:
66-
columnName, columnOk := cond.Column.(string)
66+
column, columnOk := cond.Column.(clause.Column)
6767
if !columnOk {
6868
continue
6969
}
7070

7171
// Get the `gormlike` value
7272
var tagValue string
73-
dbField, ok := db.Statement.Schema.FieldsByDBName[columnName]
73+
dbField, ok := db.Statement.Schema.FieldsByDBName[column.Name]
7474
if ok {
7575
tagValue = dbField.Tag.Get(tagName)
7676
}
@@ -95,11 +95,11 @@ func (d *gormLike) replaceExpressions(db *gorm.DB, expressions []clause.Expressi
9595
continue
9696
}
9797

98-
condition := fmt.Sprintf("%s = ?", cond.Column)
98+
condition := fmt.Sprintf("%s = ?", column.Name)
9999

100100
// If there are no % AND there aren't only replaceable characters, just skip it because it's a normal query
101101
if strings.Contains(value, "%") || (d.replaceCharacter != "" && strings.Contains(value, d.replaceCharacter)) {
102-
condition = fmt.Sprintf("CAST(%s as varchar) LIKE ?", cond.Column)
102+
condition = fmt.Sprintf("CAST(%s as varchar) LIKE ?", column.Name)
103103

104104
if d.replaceCharacter != "" {
105105
value = strings.ReplaceAll(value, d.replaceCharacter, "%")

query_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,7 @@ func TestGormLike_Initialize_ProcessUnknownFields(t *testing.T) {
656656

657657
var actual []ObjectB
658658
err = db.Where(testData.filter).Find(&actual).Error
659-
assert.Equal(t, "no such column: unknown_field", err.Error())
659+
assert.Equal(t, "no such column: object_bs.unknown_field", err.Error())
660660
assert.Nil(t, actual)
661661
})
662662
}

0 commit comments

Comments
 (0)