From 3ec4eefa36af31c88991a4a0481ca91814244c27 Mon Sep 17 00:00:00 2001 From: Andriy Romanov Date: Thu, 4 Dec 2025 16:51:36 -0800 Subject: [PATCH] Refactoring based on comments --- src/parser/mod.rs | 10 ++++++---- tests/sqlparser_common.rs | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/parser/mod.rs b/src/parser/mod.rs index 14ddeb3e..e59e0837 100644 --- a/src/parser/mod.rs +++ b/src/parser/mod.rs @@ -1270,12 +1270,14 @@ impl<'a> Parser<'a> { } // Handle parenthesized wildcard: (*) Token::LParen => { - let inner_token = self.next_token(); - if inner_token.token == Token::Mul && self.peek_token().token == Token::RParen { + let [maybe_mul, maybe_rparen] = self.peek_tokens_ref(); + if maybe_mul.token == Token::Mul && maybe_rparen.token == Token::RParen { + let mul_token = self.next_token(); // consume Mul self.next_token(); // consume RParen - return Ok(Expr::Wildcard(AttachedToken(inner_token))); + return Ok(Expr::Wildcard(AttachedToken(mul_token))); } - // Not a (*), reset and fall through to parse_expr + // Not a (*), fall through to reset index and call parse_expr + self.prev_token(); } _ => (), }; diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs index 9a8ce226..9f549e4d 100644 --- a/tests/sqlparser_common.rs +++ b/tests/sqlparser_common.rs @@ -17955,7 +17955,7 @@ fn test_parse_set_session_authorization() { } #[test] -fn parse_select_distinct_parenthesized_wildcard() { +fn parse_select_parenthesized_wildcard() { // Test SELECT DISTINCT(*) which uses a parenthesized wildcard // The parentheses are syntactic sugar and get normalized to just * let sql = "SELECT DISTINCT (*) FROM table1";