diff --git a/sqlite.go b/sqlite.go index 41b41e6..05a466a 100644 --- a/sqlite.go +++ b/sqlite.go @@ -2,6 +2,7 @@ package sqlite import ( "database/sql" + "strconv" "strings" _ "github.com/mattn/go-sqlite3" @@ -61,6 +62,21 @@ func (dialector Dialector) ClauseBuilders() map[string]clause.ClauseBuilder { c.Build(builder) }, + "LIMIT": func(c clause.Clause, builder clause.Builder) { + if limit, ok := c.Expression.(clause.Limit); ok { + if limit.Limit > 0 { + builder.WriteString("LIMIT ") + builder.WriteString(strconv.Itoa(limit.Limit)) + } + if limit.Offset > 0 { + if limit.Limit > 0 { + builder.WriteString(" ") + } + builder.WriteString("OFFSET ") + builder.WriteString(strconv.Itoa(limit.Offset)) + } + } + }, } }