mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-14 23:33:28 +00:00
std/parsesql: Add OFFSET keyword support. (#21255)
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
This commit is contained in:
@@ -60,7 +60,7 @@ const
|
||||
|
||||
reservedKeywords = @[
|
||||
# statements
|
||||
"select", "from", "where", "group", "limit", "having",
|
||||
"select", "from", "where", "group", "limit", "offset", "having",
|
||||
# functions
|
||||
"count",
|
||||
]
|
||||
@@ -509,6 +509,7 @@ type
|
||||
nkFromItemPair,
|
||||
nkGroup,
|
||||
nkLimit,
|
||||
nkOffset,
|
||||
nkHaving,
|
||||
nkOrder,
|
||||
nkJoin,
|
||||
@@ -1126,6 +1127,11 @@ proc parseSelect(p: var SqlParser): SqlNode =
|
||||
var l = newNode(nkLimit)
|
||||
l.add(parseExpr(p))
|
||||
result.add(l)
|
||||
if isKeyw(p, "offset"):
|
||||
getTok(p)
|
||||
var o = newNode(nkOffset)
|
||||
o.add(parseExpr(p))
|
||||
result.add(o)
|
||||
|
||||
proc parseStmt(p: var SqlParser; parent: SqlNode) =
|
||||
if isKeyw(p, "create"):
|
||||
@@ -1388,6 +1394,9 @@ proc ra(n: SqlNode, s: var SqlWriter) =
|
||||
of nkLimit:
|
||||
s.addKeyw("limit")
|
||||
s.addMulti(n)
|
||||
of nkOffset:
|
||||
s.addKeyw("offset")
|
||||
s.addMulti(n)
|
||||
of nkHaving:
|
||||
s.addKeyw("having")
|
||||
s.addMulti(n)
|
||||
|
||||
Reference in New Issue
Block a user