From 216d72167cc6a0202077ec905db259446dd383a3 Mon Sep 17 00:00:00 2001 From: Agaev Huseyn Date: Tue, 10 Sep 2024 14:23:20 +0300 Subject: [PATCH] Move tests to a common module and add a handler for '+' --- src/parser/mod.rs | 2 +- tests/sqlparser_common.rs | 23 +++++++++++++++++++++++ tests/sqlparser_postgres.rs | 10 ---------- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/parser/mod.rs b/src/parser/mod.rs index d05c097f7..664688cc1 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -7274,7 +7274,7 @@ impl<'a> Parser<'a> { let placeholder = tok.to_string() + &ident.value; Ok(Value::Placeholder(placeholder)) } - tok @ Token::Minus => { + tok @ Token::Minus | tok @ Token::Plus => { let next_token = self.next_token(); match next_token.token { Token::Number(n, l) => Ok(Value::Number( diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index 0f7a88d74..183729ba0 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -2819,6 +2819,29 @@ fn parse_window_function_null_treatment_arg() { ); } +#[test] +fn parse_signed_value() { + let sql1 = "CREATE SEQUENCE name1 + AS BIGINT + INCREMENT -15 + MINVALUE - 2000 MAXVALUE -50 + START WITH - 60"; + one_statement_parses_to( + sql1, + "CREATE SEQUENCE name1 AS BIGINT INCREMENT -15 MINVALUE -2000 MAXVALUE -50 START WITH -60", + ); + + let sql2 = "CREATE SEQUENCE name2 + AS BIGINT + INCREMENT +10 + MINVALUE + 30 MAXVALUE +5000 + START WITH + 45"; + one_statement_parses_to( + sql2, + "CREATE SEQUENCE name2 AS BIGINT INCREMENT +10 MINVALUE +30 MAXVALUE +5000 START WITH +45", + ); +} + #[test] fn parse_create_table() { let sql = "CREATE TABLE uk_cities (\ diff --git a/tests/sqlparser_postgres.rs b/tests/sqlparser_postgres.rs index ecd47616b..1ebb5d54c 100644 --- a/tests/sqlparser_postgres.rs +++ b/tests/sqlparser_postgres.rs @@ -277,16 +277,6 @@ fn parse_create_sequence() { "CREATE TEMPORARY SEQUENCE IF NOT EXISTS name3 INCREMENT 1 NO MINVALUE MAXVALUE 20 OWNED BY NONE", ); - let sql7 = "CREATE SEQUENCE name4 - AS BIGINT - INCREMENT -10 - MINVALUE - 2000 MAXVALUE -5 - START WITH - 20"; - pg().one_statement_parses_to( - sql7, - "CREATE SEQUENCE name4 AS BIGINT INCREMENT -10 MINVALUE -2000 MAXVALUE -5 START WITH -20", - ); - assert!(matches!( pg().parse_sql_statements("CREATE SEQUENCE foo INCREMENT 1 NO MINVALUE NO"), Err(ParserError::ParserError(_))