forked from mirror/gorm
parent
cff7845e58
commit
b8f33a42a4
|
@ -6,6 +6,8 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v1
|
||||
uses: actions/checkout@v2
|
||||
- name: golangci-lint
|
||||
uses: reviewdog/action-golangci-lint@v2
|
||||
with:
|
||||
golangci_lint_flags: '-E cyclop,unconvert,misspell,unparam,ineffassign,gocritic,prealloc,exportloopref,gosec'
|
||||
|
|
|
@ -67,6 +67,12 @@ func (expr Expr) Build(builder Builder) {
|
|||
builder.WriteByte(v)
|
||||
}
|
||||
}
|
||||
|
||||
if idx < len(expr.Vars) {
|
||||
for _, v := range expr.Vars[idx:] {
|
||||
builder.AddVar(builder, sql.NamedArg{Value: v})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NamedExpr raw expression for named expr
|
||||
|
|
|
@ -284,6 +284,11 @@ func (stmt *Statement) BuildCondition(query interface{}, args ...interface{}) []
|
|||
return []clause.Expression{clause.NamedExpr{SQL: s, Vars: args}}
|
||||
}
|
||||
|
||||
if strings.Contains(strings.TrimSpace(s), " ") {
|
||||
// looks like a where condition
|
||||
return []clause.Expression{clause.Expr{SQL: s, Vars: args}}
|
||||
}
|
||||
|
||||
if len(args) == 1 {
|
||||
return []clause.Expression{clause.Eq{Column: s, Value: args[0]}}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,13 @@ go 1.14
|
|||
|
||||
require (
|
||||
github.com/google/uuid v1.3.0
|
||||
github.com/jackc/pgx/v4 v4.14.0 // indirect
|
||||
github.com/jinzhu/now v1.1.3
|
||||
github.com/lib/pq v1.10.4
|
||||
golang.org/x/crypto v0.0.0-20211117183948-ae814b36b871 // indirect
|
||||
gorm.io/driver/mysql v1.2.0
|
||||
gorm.io/driver/postgres v1.2.2
|
||||
gorm.io/driver/sqlite v1.2.4
|
||||
gorm.io/driver/sqlite v1.2.6
|
||||
gorm.io/driver/sqlserver v1.2.1
|
||||
gorm.io/gorm v1.22.3
|
||||
)
|
||||
|
|
|
@ -44,6 +44,10 @@ func TestPostgres(t *testing.T) {
|
|||
if err := DB.First(&result, "id = ?", harumph.ID).Error; err != nil || harumph.Name != "jinzhu" {
|
||||
t.Errorf("No error should happen, but got %v", err)
|
||||
}
|
||||
|
||||
if err := DB.Where("id = $1", harumph.ID).First(&Harumph{}).Error; err != nil || harumph.Name != "jinzhu" {
|
||||
t.Errorf("No error should happen, but got %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
type Post struct {
|
||||
|
|
Loading…
Reference in New Issue