alamb commented on a change in pull request #1402:
URL: https://github.com/apache/arrow-datafusion/pull/1402#discussion_r763498003



##########
File path: datafusion/src/logical_plan/plan.rs
##########
@@ -38,7 +38,7 @@ pub enum JoinType {
     Inner,
     /// Left Join
     Left,
-    /// Right Join
+    /// Right Join: will be transferred to Left Join

Review comment:
       This is a good idea @xudong963  -- I do think it will keep things 
somewhat easier to handle.
   
   If we are going to make this change, I think we should remove the `Right` 
enum value from `JoinType` 
   
   The only possibly issue I can see with this change is that is may complicate 
the join implementation (which needs to distinguish between both which relation 
needs to be preserved and which gets hashed)
   
   Using  `Left` and `Right` enum values might allow us to maintain that 
distinction 
   
   So for example
   
   ```
   A LEFT JOIN B    --> Means preserve B, hash B
   B LEFT JOIN A    --> Means preserve A, hash A
   B RIGHT JOIN A --> Means preserve B, hash A
   A RIGHT JOIN B --> Means preserve A, hash B
   ```
   
   
   Thoughts @Dandandan ?

##########
File path: datafusion/src/logical_plan/plan.rs
##########
@@ -38,7 +38,7 @@ pub enum JoinType {
     Inner,
     /// Left Join
     Left,
-    /// Right Join
+    /// Right Join: will be transferred to Left Join

Review comment:
       This is a good idea @xudong963  -- I do think it will keep things 
somewhat easier to handle.
   
   If we are going to make this change, I think we should remove the `Right` 
enum value from `JoinType` 
   
   The only possibly issue I can see with this change is that is may complicate 
the join implementation (which needs to distinguish between both which relation 
needs to be preserved and which gets hashed)
   
   Using  `Left` and `Right` enum values might allow us to maintain that 
distinction 
   
   So for example
   
   ```
   A LEFT JOIN B    --> Means preserve B, hash B
   B LEFT JOIN A    --> Means preserve A, hash A
   B RIGHT JOIN A   --> Means preserve B, hash A
   A RIGHT JOIN B   --> Means preserve A, hash B
   ```
   
   
   Thoughts @Dandandan ?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to