diff options
author | Phil Krylov <phil@krylov.eu> | 2023-01-18 19:11:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-18 13:11:15 -0500 |
commit | f04f3e8bf78ab4187a395a024c94cd545c275720 (patch) | |
tree | dad014bf2226196a53d4675bf2c6db8f1195f0ac /lib | |
parent | fc5b7a01eccfbfeba6ded8765ca956eab0952db5 (diff) | |
download | Nim-f04f3e8bf78ab4187a395a024c94cd545c275720.tar.gz |
std/parsesql: Add OFFSET keyword support. (#21255)
Co-authored-by: Clay Sweetser <Varriount@users.noreply.github.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pure/parsesql.nim | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/pure/parsesql.nim b/lib/pure/parsesql.nim index 3af840e29..074faf64c 100644 --- a/lib/pure/parsesql.nim +++ b/lib/pure/parsesql.nim @@ -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) |