Skip to content

Commit

Permalink
let limit and offset use bind parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
chenchuan committed Jan 26, 2024
1 parent 0123dd4 commit 7c75713
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
8 changes: 4 additions & 4 deletions clause/limit.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package clause

import "strconv"

// Limit limit clause
type Limit struct {
Limit *int
Expand All @@ -17,14 +15,16 @@ func (limit Limit) Name() string {
func (limit Limit) Build(builder Builder) {
if limit.Limit != nil && *limit.Limit >= 0 {
builder.WriteString("LIMIT ")
builder.WriteString(strconv.Itoa(*limit.Limit))
// builder.WriteString(strconv.Itoa(*limit.Limit))
builder.AddVar(builder, *limit.Limit)
}
if limit.Offset > 0 {
if limit.Limit != nil && *limit.Limit >= 0 {
builder.WriteByte(' ')
}
builder.WriteString("OFFSET ")
builder.WriteString(strconv.Itoa(limit.Offset))
builder.AddVar(builder, limit.Offset)
// builder.WriteString(strconv.Itoa(limit.Offset))
}
}

Expand Down
20 changes: 10 additions & 10 deletions clause/limit_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,43 +22,43 @@ func TestLimit(t *testing.T) {
Limit: &limit10,
Offset: 20,
}},
"SELECT * FROM `users` LIMIT 10 OFFSET 20", nil,
"SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 20},

Check failure on line 25 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:25:- "SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 20}, clause/limit_test.go:25:+ "SELECT * FROM `users` LIMIT ? OFFSET ?", clause/limit_test.go:26:+ []interface{}{limit10, 20},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit0}},
"SELECT * FROM `users` LIMIT 0", nil,
"SELECT * FROM `users` LIMIT ?", []interface{}{limit0},

Check failure on line 29 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:29:- "SELECT * FROM `users` LIMIT ?", []interface{}{limit0}, clause/limit_test.go:30:+ "SELECT * FROM `users` LIMIT ?", clause/limit_test.go:31:+ []interface{}{limit0},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit0}, clause.Limit{Offset: 0}},
"SELECT * FROM `users` LIMIT 0", nil,
"SELECT * FROM `users` LIMIT ?", []interface{}{limit0},

Check failure on line 33 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:33:- "SELECT * FROM `users` LIMIT ?", []interface{}{limit0}, clause/limit_test.go:35:+ "SELECT * FROM `users` LIMIT ?", clause/limit_test.go:36:+ []interface{}{limit0},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Offset: 20}},
"SELECT * FROM `users` OFFSET 20", nil,
"SELECT * FROM `users` OFFSET ?", []interface{}{20},

Check failure on line 37 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:37:- "SELECT * FROM `users` OFFSET ?", []interface{}{20}, clause/limit_test.go:40:+ "SELECT * FROM `users` OFFSET ?", clause/limit_test.go:41:+ []interface{}{20},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Offset: 20}, clause.Limit{Offset: 30}},
"SELECT * FROM `users` OFFSET 30", nil,
"SELECT * FROM `users` OFFSET ?", []interface{}{30},

Check failure on line 41 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:41:- "SELECT * FROM `users` OFFSET ?", []interface{}{30}, clause/limit_test.go:45:+ "SELECT * FROM `users` OFFSET ?", clause/limit_test.go:46:+ []interface{}{30},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Offset: 20}, clause.Limit{Limit: &limit10}},
"SELECT * FROM `users` LIMIT 10 OFFSET 20", nil,
"SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 20},

Check failure on line 45 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:45:- "SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 20}, clause/limit_test.go:50:+ "SELECT * FROM `users` LIMIT ? OFFSET ?", clause/limit_test.go:51:+ []interface{}{limit10, 20},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit10, Offset: 20}, clause.Limit{Offset: 30}},
"SELECT * FROM `users` LIMIT 10 OFFSET 30", nil,
"SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 30},

Check failure on line 49 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:49:- "SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit10, 30}, clause/limit_test.go:55:+ "SELECT * FROM `users` LIMIT ? OFFSET ?", clause/limit_test.go:56:+ []interface{}{limit10, 30},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit10, Offset: 20}, clause.Limit{Offset: 30}, clause.Limit{Offset: -10}},
"SELECT * FROM `users` LIMIT 10", nil,
"SELECT * FROM `users` LIMIT ?", []interface{}{limit10},

Check failure on line 53 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:53:- "SELECT * FROM `users` LIMIT ?", []interface{}{limit10}, clause/limit_test.go:60:+ "SELECT * FROM `users` LIMIT ?", clause/limit_test.go:61:+ []interface{}{limit10},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit10, Offset: 20}, clause.Limit{Offset: 30}, clause.Limit{Limit: &limitNeg10}},
"SELECT * FROM `users` OFFSET 30", nil,
"SELECT * FROM `users` OFFSET ?", []interface{}{30},

Check failure on line 57 in clause/limit_test.go

View workflow job for this annotation

GitHub Actions / runner / golangci-lint

[gofumpt] reported by reviewdog 🐶 Raw Output: clause/limit_test.go:57:- "SELECT * FROM `users` OFFSET ?", []interface{}{30}, clause/limit_test.go:65:+ "SELECT * FROM `users` OFFSET ?", clause/limit_test.go:66:+ []interface{}{30},
},
{
[]clause.Interface{clause.Select{}, clause.From{}, clause.Limit{Limit: &limit10, Offset: 20}, clause.Limit{Offset: 30}, clause.Limit{Limit: &limit50}},
"SELECT * FROM `users` LIMIT 50 OFFSET 30", nil,
"SELECT * FROM `users` LIMIT ? OFFSET ?", []interface{}{limit50, 30},
},
}

Expand Down

0 comments on commit 7c75713

Please sign in to comment.