std/parsesql: Add OFFSET keyword support. (#21255)
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
This commit is contained in:
parent
fc5b7a01ec
commit
f04f3e8bf7
1 changed files with 10 additions and 1 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue