weiqingy commented on code in PR #2438:
URL: https://github.com/apache/auron/pull/2438#discussion_r3694512949


##########
spark-extension-shims-spark/src/test/scala/org/apache/auron/AuronQuerySuite.scala:
##########
@@ -883,6 +884,51 @@ class AuronQuerySuite extends AuronQueryTest with 
BaseAuronSQLSuite with AuronSQ
     }
   }
 
+  test("native broadcast hash join supports inner residual condition") {

Review Comment:
   This pins the inner accept path for both build sides, which is the half the 
PR changes. The other half of the contract in #2437 is "continue rejecting 
residual conditions for outer, semi, anti, and other broadcast join types", and 
there are now four guards enforcing it with no test behind any of them: 
`AuronConverters.scala:706`, `NativeBroadcastJoinBase.scala:129`, 
`planner.rs:433-437`, and `broadcast_join_exec.rs:110-112`. The Rust side is 
inner-only as well, since `bhj_collect_with_filter` pins `Inner` at 
`test.rs:399` and `:430`.
   
   #2197 set the same precedent for SMJ/SHJ, so nothing regressed here. Worth 
adding one negative case so the reject half is pinned too?
   
   One way it could look, in case it helps:
   
   ```scala
   val df = checkSparkAnswer("""
     |SELECT /*+ BROADCAST(r) */ l.id
     |FROM bhj_left l LEFT JOIN bhj_right r ON l.id = r.id AND l.lv < r.rv
     |""".stripMargin)
   assert(
     stripAQEPlan(df.queryExecution.executedPlan)
       .collectFirst { case _: NativeBroadcastJoinExec => true }
       .isEmpty)
   ```



-- 
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