27 lines
516 B
Go
27 lines
516 B
Go
package sqlbuilder
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/jinzhu/gorm"
|
|
)
|
|
|
|
// BuildLimitCondition build limit condition
|
|
func BuildLimitCondition(tx *gorm.DB) chan *Builder {
|
|
limitChan := make(chan *Builder)
|
|
|
|
go func() {
|
|
builder := &Builder{}
|
|
if limit := tx.Statement.Limit; limit.Limit != nil {
|
|
builder.SQL.WriteString(fmt.Sprintf(" LIMIT %d", *limit.Limit))
|
|
|
|
if limit.Offset != nil {
|
|
builder.SQL.WriteString(fmt.Sprintf(" OFFSET %d", *limit.Offset))
|
|
}
|
|
}
|
|
limitChan <- builder
|
|
}()
|
|
|
|
return limitChan
|
|
}
|