Merge pull request #1064 from jaytaylor/jay/limit-offset

Use int64 for limit/offset values to ensure values > 32-bit int are addressable.
This commit is contained in:
Jinzhu 2016-06-16 08:48:43 +08:00 committed by GitHub
commit 300edb5bca
5 changed files with 9 additions and 9 deletions

View File

@ -35,7 +35,7 @@ type Dialect interface {
HasColumn(tableName string, columnName string) bool
// LimitAndOffsetSQL return generated SQL with Limit and Offset, as mssql has special case
LimitAndOffsetSQL(limit, offset int) string
LimitAndOffsetSQL(limit, offset int64) string
// SelectFromDummyTable return select values, for most dbs, `SELECT values` just works, mysql needs `SELECT value FROM DUAL`
SelectFromDummyTable() string
// LastInsertIdReturningSuffix most dbs support LastInsertId, but postgres needs to use `RETURNING`

View File

@ -122,7 +122,7 @@ func (s commonDialect) currentDatabase() (name string) {
return
}
func (commonDialect) LimitAndOffsetSQL(limit, offset int) (sql string) {
func (commonDialect) LimitAndOffsetSQL(limit, offset int64) (sql string) {
if limit > 0 || offset > 0 {
if limit >= 0 {
sql += fmt.Sprintf(" LIMIT %d", limit)

View File

@ -127,7 +127,7 @@ func (s mssql) currentDatabase() (name string) {
return
}
func (mssql) LimitAndOffsetSQL(limit, offset int) (sql string) {
func (mssql) LimitAndOffsetSQL(limit, offset int64) (sql string) {
if limit > 0 || offset > 0 {
if offset < 0 {
offset = 0

View File

@ -156,12 +156,12 @@ func (s *DB) Not(query interface{}, args ...interface{}) *DB {
}
// Limit specify the number of records to be retrieved
func (s *DB) Limit(limit int) *DB {
func (s *DB) Limit(limit int64) *DB {
return s.clone().search.Limit(limit).db
}
// Offset specify the number of records to skip before starting to return the records
func (s *DB) Offset(offset int) *DB {
func (s *DB) Offset(offset int64) *DB {
return s.clone().search.Offset(offset).db
}

View File

@ -15,8 +15,8 @@ type search struct {
omits []string
orders []string
preload []searchPreload
offset int
limit int
offset int64
limit int64
group string
tableName string
raw bool
@ -82,12 +82,12 @@ func (s *search) Omit(columns ...string) *search {
return s
}
func (s *search) Limit(limit int) *search {
func (s *search) Limit(limit int64) *search {
s.limit = limit
return s
}
func (s *search) Offset(offset int) *search {
func (s *search) Offset(offset int64) *search {
s.offset = offset
return s
}