Skip to content

Commit 3f3481d

Browse files
committed
refactor: Count、Limit、Offset use int64 param
1 parent 5de0fb9 commit 3f3481d

File tree

7 files changed

+39
-39
lines changed

7 files changed

+39
-39
lines changed

internal/dbtest/db_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ func testSelectCount(t *testing.T, db *bun.DB) {
376376

377377
count, err := q.Count(ctx)
378378
require.NoError(t, err)
379-
require.Equal(t, 3, count)
379+
require.Equal(t, int64(3), count)
380380
}
381381

382382
func testSelectMap(t *testing.T, db *bun.DB) {
@@ -920,7 +920,7 @@ func testFKViolation(t *testing.T, db *bun.DB) {
920920

921921
n, err := db.NewSelect().Model((*Deck)(nil)).Count(ctx)
922922
require.NoError(t, err)
923-
require.Equal(t, 0, n)
923+
require.Equal(t, int64(0), n)
924924
}
925925

926926
func testWithForeignKeysAndRules(t *testing.T, db *bun.DB) {
@@ -971,7 +971,7 @@ func testWithForeignKeysAndRules(t *testing.T, db *bun.DB) {
971971

972972
n, err := db.NewSelect().Model((*Deck)(nil)).Count(ctx)
973973
require.NoError(t, err)
974-
require.Equal(t, 0, n)
974+
require.Equal(t, int64(0), n)
975975

976976
_, err = db.NewInsert().Model(&User{ID: 1, Type: "admin", Name: "root"}).Exec(ctx)
977977
require.NoError(t, err)
@@ -992,19 +992,19 @@ func testWithForeignKeysAndRules(t *testing.T, db *bun.DB) {
992992

993993
n, err = db.NewSelect().Model(&Deck{}).Where("user_id = 1").Count(ctx)
994994
require.NoError(t, err)
995-
require.Equal(t, 0, n)
995+
require.Equal(t, int64(0), n)
996996

997997
n, err = db.NewSelect().Model(&Deck{}).Where("user_id = 2").Count(ctx)
998998
require.NoError(t, err)
999-
require.Equal(t, 1, n)
999+
require.Equal(t, int64(1), n)
10001000

10011001
// Delete user and check for FK delete
10021002
_, err = db.NewDelete().Model(&User{}).Where("id = ?", 2).Exec(ctx)
10031003
require.NoError(t, err)
10041004

10051005
n, err = db.NewSelect().Model(&Deck{}).Where("user_id = 2").Count(ctx)
10061006
require.NoError(t, err)
1007-
require.Equal(t, 0, n)
1007+
require.Equal(t, int64(0), n)
10081008
}
10091009

10101010
func testWithForeignKeys(t *testing.T, db *bun.DB) {
@@ -1056,7 +1056,7 @@ func testWithForeignKeys(t *testing.T, db *bun.DB) {
10561056

10571057
n, err := db.NewSelect().Model((*Deck)(nil)).Count(ctx)
10581058
require.NoError(t, err)
1059-
require.Equal(t, 0, n)
1059+
require.Equal(t, int64(0), n)
10601060

10611061
_, err = db.NewInsert().Model(&User{ID: 1, Type: "admin", Name: "root"}).Exec(ctx)
10621062
require.NoError(t, err)
@@ -1502,7 +1502,7 @@ func testScanAndCount(t *testing.T, db *bun.DB) {
15021502
var models []Model
15031503
count, err := tx.NewSelect().Model(&models).ScanAndCount(ctx)
15041504
require.NoError(t, err)
1505-
require.Equal(t, 0, count)
1505+
require.Equal(t, int64(0), count)
15061506
return err
15071507
})
15081508
require.NoError(t, err)
@@ -1513,7 +1513,7 @@ func testScanAndCount(t *testing.T, db *bun.DB) {
15131513
models := []Model{}
15141514
count, err := db.NewSelect().Table("models").Limit(10).ScanAndCount(ctx, &models)
15151515
require.NoError(t, err)
1516-
require.Equal(t, 0, count)
1516+
require.Equal(t, int64(0), count)
15171517
require.Equal(t, 0, len(models))
15181518
})
15191519

@@ -1528,7 +1528,7 @@ func testScanAndCount(t *testing.T, db *bun.DB) {
15281528
var dest []Model
15291529
count, err := db.NewSelect().Model(&dest).ScanAndCount(ctx)
15301530
require.NoError(t, err)
1531-
require.Equal(t, 2, count)
1531+
require.Equal(t, int64(2), count)
15321532
require.Equal(t, 2, len(dest))
15331533
})
15341534
}
@@ -1737,10 +1737,10 @@ func testRunInTxAndSavepoint(t *testing.T, db *bun.DB) {
17371737
})
17381738
require.Error(t, err)
17391739

1740-
var count int
1740+
var count int64
17411741
err = db.NewSelect().Model((*Counter)(nil)).Scan(ctx, &count)
17421742
require.NoError(t, err)
1743-
require.Equal(t, 0, count)
1743+
require.Equal(t, int64(0), count)
17441744

17451745
err = db.RunInTx(ctx, nil, func(ctx context.Context, tx bun.Tx) error {
17461746
err := tx.RunInTx(ctx, nil, func(ctx context.Context, sp bun.Tx) error {
@@ -1767,7 +1767,7 @@ func testRunInTxAndSavepoint(t *testing.T, db *bun.DB) {
17671767

17681768
count, err = db.NewSelect().Model((*Counter)(nil)).Count(ctx)
17691769
require.NoError(t, err)
1770-
require.Equal(t, 2, count)
1770+
require.Equal(t, int64(2), count)
17711771

17721772
err = db.ResetModel(ctx, (*Counter)(nil))
17731773
require.NoError(t, err)
@@ -1805,7 +1805,7 @@ func testRunInTxAndSavepoint(t *testing.T, db *bun.DB) {
18051805

18061806
count, err = db.NewSelect().Model((*Counter)(nil)).Count(ctx)
18071807
require.NoError(t, err)
1808-
require.Equal(t, 4, count)
1808+
require.Equal(t, int64(4), count)
18091809
}
18101810

18111811
type anotherString string

internal/dbtest/pg_test.go

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

341341
n, err := db.NewSelect().Conn(tx).Model((*Model)(nil)).Count(ctx)
342342
require.NoError(t, err)
343-
require.Equal(t, 0, n)
343+
require.Equal(t, int64(0), n)
344344

345345
err = tx.Rollback()
346346
require.NoError(t, err)

internal/dbtest/soft_delete_test.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func testSoftDeleteAPI(t *testing.T, db *bun.DB) {
6161
// Count visible videos.
6262
count, err := db.NewSelect().Model((*Video)(nil)).Count(ctx)
6363
require.NoError(t, err)
64-
require.Equal(t, 1, count)
64+
require.Equal(t, int64(1), count)
6565

6666
// Soft delete.
6767
_, err = db.NewDelete().Model(video1).Where("id = ?", video1.ID).Exec(ctx)
@@ -70,12 +70,12 @@ func testSoftDeleteAPI(t *testing.T, db *bun.DB) {
7070
// Count visible videos.
7171
count, err = db.NewSelect().Model((*Video)(nil)).Count(ctx)
7272
require.NoError(t, err)
73-
require.Equal(t, 0, count)
73+
require.Equal(t, int64(0), count)
7474

7575
// Count deleted videos.
7676
count, err = db.NewSelect().Model((*Video)(nil)).WhereDeleted().Count(ctx)
7777
require.NoError(t, err)
78-
require.Equal(t, 1, count)
78+
require.Equal(t, int64(1), count)
7979

8080
// Undelete.
8181
_, err = db.NewUpdate().
@@ -89,7 +89,7 @@ func testSoftDeleteAPI(t *testing.T, db *bun.DB) {
8989
// Count visible videos.
9090
count, err = db.NewSelect().Model((*Video)(nil)).Count(ctx)
9191
require.NoError(t, err)
92-
require.Equal(t, 1, count)
92+
require.Equal(t, int64(1), count)
9393

9494
// Force delete.
9595
_, err = db.NewDelete().Model(video1).Where("id = ?", video1.ID).ForceDelete().Exec(ctx)
@@ -98,7 +98,7 @@ func testSoftDeleteAPI(t *testing.T, db *bun.DB) {
9898
// Count deleted.
9999
count, err = db.NewSelect().Model((*Video)(nil)).WhereDeleted().Count(ctx)
100100
require.NoError(t, err)
101-
require.Equal(t, 0, count)
101+
require.Equal(t, int64(0), count)
102102
}
103103

104104
func testSoftDeleteForce(t *testing.T, db *bun.DB) {
@@ -149,7 +149,7 @@ func testSoftDeleteForce(t *testing.T, db *bun.DB) {
149149
// Check no remaining videos.
150150
count, err := db.NewSelect().Model((*Video)(nil)).WhereAllWithDeleted().Count(ctx)
151151
require.NoError(t, err)
152-
require.Equal(t, 0, count)
152+
require.Equal(t, int64(0), count)
153153
}
154154

155155
func testSoftDeleteBulk(t *testing.T, db *bun.DB) {
@@ -177,5 +177,5 @@ func testSoftDeleteBulk(t *testing.T, db *bun.DB) {
177177

178178
count, err := db.NewSelect().Model((*Video)(nil)).Count(ctx)
179179
require.NoError(t, err)
180-
require.Equal(t, 0, count)
180+
require.Equal(t, int64(0), count)
181181
}

query_base.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,8 +1478,8 @@ func (ih *idxHintsQuery) bufIndexHint(
14781478
type orderLimitOffsetQuery struct {
14791479
order []schema.QueryWithArgs
14801480

1481-
limit int32
1482-
offset int32
1481+
limit int64
1482+
offset int64
14831483
}
14841484

14851485
func (q *orderLimitOffsetQuery) addOrder(orders ...string) {
@@ -1533,12 +1533,12 @@ func (q *orderLimitOffsetQuery) appendOrder(gen schema.QueryGen, b []byte) (_ []
15331533
return b, nil
15341534
}
15351535

1536-
func (q *orderLimitOffsetQuery) setLimit(n int) {
1537-
q.limit = int32(n)
1536+
func (q *orderLimitOffsetQuery) setLimit(n int64) {
1537+
q.limit = n
15381538
}
15391539

1540-
func (q *orderLimitOffsetQuery) setOffset(n int) {
1541-
q.offset = int32(n)
1540+
func (q *orderLimitOffsetQuery) setOffset(n int64) {
1541+
q.offset = n
15421542
}
15431543

15441544
func (q *orderLimitOffsetQuery) appendLimitOffset(gen schema.QueryGen, b []byte) (_ []byte, err error) {

query_delete.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ func (q *DeleteQuery) ForceDelete() *DeleteQuery {
156156
}
157157

158158
// ------------------------------------------------------------------------------
159-
func (q *DeleteQuery) Limit(n int) *DeleteQuery {
159+
func (q *DeleteQuery) Limit(n int64) *DeleteQuery {
160160
if !q.hasFeature(feature.DeleteOrderLimit) {
161161
q.setErr(feature.NewNotSupportError(feature.DeleteOrderLimit))
162162
return q

query_select.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -337,13 +337,13 @@ func (q *SelectQuery) OrderExpr(query string, args ...any) *SelectQuery {
337337
}
338338

339339
// Limit sets the maximum number of rows to return.
340-
func (q *SelectQuery) Limit(n int) *SelectQuery {
340+
func (q *SelectQuery) Limit(n int64) *SelectQuery {
341341
q.setLimit(n)
342342
return q
343343
}
344344

345345
// Offset sets the number of rows to skip before returning results.
346-
func (q *SelectQuery) Offset(n int) *SelectQuery {
346+
func (q *SelectQuery) Offset(n int64) *SelectQuery {
347347
q.setOffset(n)
348348
return q
349349
}
@@ -996,7 +996,7 @@ func (q *SelectQuery) afterSelectHook(ctx context.Context) error {
996996
}
997997

998998
// Count executes the query and returns the number of rows that match.
999-
func (q *SelectQuery) Count(ctx context.Context) (int, error) {
999+
func (q *SelectQuery) Count(ctx context.Context) (int64, error) {
10001000
if q.err != nil {
10011001
return 0, q.err
10021002
}
@@ -1014,7 +1014,7 @@ func (q *SelectQuery) Count(ctx context.Context) (int, error) {
10141014
query := internal.String(queryBytes)
10151015
ctx, event := q.db.beforeQuery(ctx, qq, query, nil, query, q.model)
10161016

1017-
var num int
1017+
var num int64
10181018
err = q.resolveConn(ctx, q).QueryRowContext(ctx, query).Scan(&num)
10191019

10201020
q.db.afterQuery(ctx, event, nil, err)
@@ -1023,15 +1023,15 @@ func (q *SelectQuery) Count(ctx context.Context) (int, error) {
10231023
}
10241024

10251025
// ScanAndCount executes the query, scans results into dest, and returns the total count.
1026-
func (q *SelectQuery) ScanAndCount(ctx context.Context, dest ...any) (int, error) {
1026+
func (q *SelectQuery) ScanAndCount(ctx context.Context, dest ...any) (int64, error) {
10271027
if q.offset == 0 && q.limit == 0 {
10281028
// If there is no limit and offset, we can use a single query to get the count and scan
10291029
if res, err := q.scanResult(ctx, dest...); err != nil {
10301030
return 0, err
10311031
} else if n, err := res.RowsAffected(); err != nil {
10321032
return 0, err
10331033
} else {
1034-
return int(n), nil
1034+
return n, nil
10351035
}
10361036
}
10371037
if q.conn == nil {
@@ -1042,8 +1042,8 @@ func (q *SelectQuery) ScanAndCount(ctx context.Context, dest ...any) (int, error
10421042

10431043
func (q *SelectQuery) scanAndCountConcurrently(
10441044
ctx context.Context, dest ...any,
1045-
) (int, error) {
1046-
var count int
1045+
) (int64, error) {
1046+
var count int64
10471047
var wg sync.WaitGroup
10481048
var mu sync.Mutex
10491049
var firstErr error
@@ -1087,7 +1087,7 @@ func (q *SelectQuery) scanAndCountConcurrently(
10871087
return count, firstErr
10881088
}
10891089

1090-
func (q *SelectQuery) scanAndCountSeq(ctx context.Context, dest ...any) (int, error) {
1090+
func (q *SelectQuery) scanAndCountSeq(ctx context.Context, dest ...any) (int64, error) {
10911091
var firstErr error
10921092

10931093
// Don't scan results if the user explicitly set Limit(-1).

query_update.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ func (q *UpdateQuery) OrderExpr(query string, args ...any) *UpdateQuery {
227227
return q
228228
}
229229

230-
func (q *UpdateQuery) Limit(n int) *UpdateQuery {
230+
func (q *UpdateQuery) Limit(n int64) *UpdateQuery {
231231
if !q.hasFeature(feature.UpdateOrderLimit) {
232232
q.setErr(feature.NewNotSupportError(feature.UpdateOrderLimit))
233233
return q

0 commit comments

Comments
 (0)