From 4fe70a2cc521c8da55599c978311701e70d2aec2 Mon Sep 17 00:00:00 2001 From: Jinzhu Date: Fri, 11 Sep 2020 11:50:13 +0800 Subject: [PATCH] Allow negative number for limit --- sqlite.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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)) + } + } + }, } }