示例#1
0
 def parse(tokens):
     next_token = next(tokens)
     if lower(next_token) == "all":
         limit_all = True
         expression = None
     else:
         limit_all = False
         expression_tokens, next_token = get_tokens_until_one_of(
             tokens, [], first_token=next_token)
         expression, _ = ExpressionParser.parse(iter(expression_tokens))
     return LimitClause(limit_all, expression)
示例#2
0
def test_limit_parentheses():
    actual = SQLStatementParser.parse(to_tokens("SELECT 1 LIMIT (((3)))"))
    expected = SelectStatement(
        expressions=[Integer(1)],
        limit_clause=LimitClause(
            limit_all=False,
            expression=Parenthesis(Parenthesis(Parenthesis(Integer(3)))),
        ),
        semi_colon=False,
    )
    assert actual == expected