From 4acf170690df4830ff9c2f17586506b9dcbf0e24 Mon Sep 17 00:00:00 2001 From: freemine Date: Mon, 30 Dec 2024 19:30:43 +0800 Subject: [PATCH] remove LEFT as default for non-inner-joins --- source/libs/parser/inc/sql.y | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/source/libs/parser/inc/sql.y b/source/libs/parser/inc/sql.y index c37494b298..172a5a95de 100644 --- a/source/libs/parser/inc/sql.y +++ b/source/libs/parser/inc/sql.y @@ -1482,7 +1482,7 @@ inner_joined(A) ::= /************************************************ outer join **********************************************************/ outer_joined(A) ::= table_reference(B) OUTER JOIN table_reference(E) join_on_clause_opt(F) - window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_LEFT, JOIN_STYPE_OUTER, A, B, E, F, G, H); } + window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_NONE, JOIN_STYPE_OUTER, A, B, E, F, G, H); } outer_joined(A) ::= table_reference(B) LEFT OUTER JOIN table_reference(E) join_on_clause_opt(F) @@ -1499,7 +1499,7 @@ outer_joined(A) ::= /************************************************ semi join ***********************************************************/ semi_joined(A) ::= table_reference(B) SEMI JOIN table_reference(E) join_on_clause_opt(F) - window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_LEFT, JOIN_STYPE_SEMI, A, B, E, F, G, H); } + window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_NONE, JOIN_STYPE_SEMI, A, B, E, F, G, H); } semi_joined(A) ::= table_reference(B) LEFT SEMI JOIN table_reference(E) join_on_clause_opt(F) @@ -1512,7 +1512,7 @@ semi_joined(A) ::= /************************************************ ansi join ***********************************************************/ anti_joined(A) ::= table_reference(B) ANTI JOIN table_reference(E) join_on_clause_opt(F) - window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_LEFT, JOIN_STYPE_ANTI, A, B, E, F, G, H); } + window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_NONE, JOIN_STYPE_ANTI, A, B, E, F, G, H); } anti_joined(A) ::= table_reference(B) LEFT ANTI JOIN table_reference(E) join_on_clause_opt(F) @@ -1523,6 +1523,10 @@ anti_joined(A) ::= window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_RIGHT, JOIN_STYPE_ANTI, A, B, E, F, G, H); } /************************************************ asof join ***********************************************************/ +asof_joined(A) ::= + table_reference(B) ASOF JOIN table_reference(E) join_on_clause_opt(F) + window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_NONE, JOIN_STYPE_ASOF, A, B, E, F, G, H); } + asof_joined(A) ::= table_reference(B) LEFT ASOF JOIN table_reference(E) join_on_clause_opt(F) window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_LEFT, JOIN_STYPE_ASOF, A, B, E, F, G, H); } @@ -1532,6 +1536,10 @@ asof_joined(A) ::= window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_RIGHT, JOIN_STYPE_ASOF, A, B, E, F, G, H); } /************************************************ window join *********************************************************/ +win_joined(A) ::= + table_reference(B) WINDOW JOIN table_reference(E) join_on_clause_opt(F) + window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_NONE, JOIN_STYPE_WIN, A, B, E, F, G, H); } + win_joined(A) ::= table_reference(B) LEFT WINDOW JOIN table_reference(E) join_on_clause_opt(F) window_offset_clause_opt(G) jlimit_clause_opt(H). { JOINED_TABLE_MK(JOIN_TYPE_LEFT, JOIN_STYPE_WIN, A, B, E, F, G, H); }