From f04f3e8bf78ab4187a395a024c94cd545c275720 Mon Sep 17 00:00:00 2001 From: Phil Krylov Date: Wed, 18 Jan 2023 19:11:15 +0100 Subject: std/parsesql: Add OFFSET keyword support. (#21255) Co-authored-by: Clay Sweetser --- lib/pure/parsesql.nim | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'lib') 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) -- cgit 1.4.1-2-gfad0