This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/main/pr-2355-575ee264dffa3c5039dc3d15abd903fd420eba2b
in repository https://gitbox.apache.org/repos/asf/datafusion-sqlparser-rs.git

commit d0c081ea2dea327031ad31300cd0791a3b87a667
Author: revitalkr <[email protected]>
AuthorDate: Fri Jun 5 12:06:16 2026 +0300

    Fix issue #2353: Incorrect canonicalization of `NATURAL JOIN` (#2355)
---
 src/parser/mod.rs         |  1 +
 tests/sqlparser_common.rs | 12 +-----------
 2 files changed, 2 insertions(+), 11 deletions(-)

diff --git a/src/parser/mod.rs b/src/parser/mod.rs
index e0c2dc26..d7dd2803 100644
--- a/src/parser/mod.rs
+++ b/src/parser/mod.rs
@@ -15994,6 +15994,7 @@ impl<'a> Parser<'a> {
                 if !self
                     .dialect
                     .supports_left_associative_joins_without_parens()
+                    && !natural
                     && self.peek_parens_less_nested_join()
                 {
                     let joins = self.parse_joins()?;
diff --git a/tests/sqlparser_common.rs b/tests/sqlparser_common.rs
index d12b6a44..62701642 100644
--- a/tests/sqlparser_common.rs
+++ b/tests/sqlparser_common.rs
@@ -17443,8 +17443,7 @@ fn column_check_enforced() {
 
 #[test]
 fn join_precedence() {
-    all_dialects_except(|d| 
!d.supports_left_associative_joins_without_parens())
-        .verified_query_with_canonical(
+    all_dialects().verified_query_with_canonical(
         "SELECT *
          FROM t1
          NATURAL JOIN t5
@@ -17453,15 +17452,6 @@ fn join_precedence() {
         // canonical string without parentheses
         "SELECT * FROM t1 NATURAL JOIN t5 INNER JOIN t0 ON (t0.v1 + t5.v0) > 0 
WHERE t0.v1 = t1.v0",
     );
-    all_dialects_except(|d| 
d.supports_left_associative_joins_without_parens()).verified_query_with_canonical(
-        "SELECT *
-         FROM t1
-         NATURAL JOIN t5
-         INNER JOIN t0 ON (t0.v1 + t5.v0) > 0
-         WHERE t0.v1 = t1.v0",
-        // canonical string with parentheses
-        "SELECT * FROM t1 NATURAL JOIN (t5 INNER JOIN t0 ON (t0.v1 + t5.v0) > 
0) WHERE t0.v1 = t1.v0",
-    );
 }
 
 #[test]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to