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 = @[
|
reservedKeywords = @[
|
||||||
# statements
|
# statements
|
||||||
"select", "from", "where", "group", "limit", "having",
|
"select", "from", "where", "group", "limit", "offset", "having",
|
||||||
# functions
|
# functions
|
||||||
"count",
|
"count",
|
||||||
]
|
]
|
||||||
|
|
@ -509,6 +509,7 @@ type
|
||||||
nkFromItemPair,
|
nkFromItemPair,
|
||||||
nkGroup,
|
nkGroup,
|
||||||
nkLimit,
|
nkLimit,
|
||||||
|
nkOffset,
|
||||||
nkHaving,
|
nkHaving,
|
||||||
nkOrder,
|
nkOrder,
|
||||||
nkJoin,
|
nkJoin,
|
||||||
|
|
@ -1126,6 +1127,11 @@ proc parseSelect(p: var SqlParser): SqlNode =
|
||||||
var l = newNode(nkLimit)
|
var l = newNode(nkLimit)
|
||||||
l.add(parseExpr(p))
|
l.add(parseExpr(p))
|
||||||
result.add(l)
|
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) =
|
proc parseStmt(p: var SqlParser; parent: SqlNode) =
|
||||||
if isKeyw(p, "create"):
|
if isKeyw(p, "create"):
|
||||||
|
|
@ -1388,6 +1394,9 @@ proc ra(n: SqlNode, s: var SqlWriter) =
|
||||||
of nkLimit:
|
of nkLimit:
|
||||||
s.addKeyw("limit")
|
s.addKeyw("limit")
|
||||||
s.addMulti(n)
|
s.addMulti(n)
|
||||||
|
of nkOffset:
|
||||||
|
s.addKeyw("offset")
|
||||||
|
s.addMulti(n)
|
||||||
of nkHaving:
|
of nkHaving:
|
||||||
s.addKeyw("having")
|
s.addKeyw("having")
|
||||||
s.addMulti(n)
|
s.addMulti(n)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue