maropu commented on a change in pull request #28810:
URL: https://github.com/apache/spark/pull/28810#discussion_r439347664
##########
File path:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
##########
@@ -1334,13 +1340,13 @@ object PushPredicateThroughJoin extends
Rule[LogicalPlan] with PredicateHelper {
(rightFilterConditions ++ commonFilterCondition).
reduceLeftOption(And).map(Filter(_, newJoin)).getOrElse(newJoin)
- case FullOuter => f // DO Nothing for Full Outer Join
- case NaturalJoin(_) => sys.error("Untransformed NaturalJoin node")
- case UsingJoin(_, _) => sys.error("Untransformed Using join node")
+
+ case jt =>
+ sys.error(s"Unexpected join type: $jt")
Review comment:
How about `IllegalStateException`? Throwing an exception here looks okay
to me, but I personally think we need consistent handling for unexpected code
pathes. I've checed how to handle this unexpected behaivour in the other
optimzier rules, then I found there are some rules to use `sys.error`;
```
$ grep -nr "sys.error" .
./Optimizer.scala:1345: sys.error(s"Unexpected join type: $jt")
./Optimizer.scala:1381: sys.error(s"Unexpected join type: $jt")
./PushCNFPredicateThroughJoin.scala:64: sys.error(s"Unexpected
join type: $jt")
./subquery.scala:458: sys.error(s"Unexpected operator in scalar
subquery: $lp")
./subquery.scala:496: sys.error(s"Correlated subquery has
unexpected operator $op below filter")
./subquery.scala:498: case op @ _ => sys.error(s"Unexpected operator
$op in correlated subquery")
./subquery.scala:502: sys.error("This line should be unreachable")
./subquery.scala:564: case op => sys.error(s"Unexpected
operator $op in corelated subquery")
```
Is it better to change them, too?
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]