Github user cloud-fan commented on a diff in the pull request:
https://github.com/apache/spark/pull/22711#discussion_r224951190
--- Diff:
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/expressions.scala
---
@@ -276,31 +276,37 @@ object BooleanSimplification extends
Rule[LogicalPlan] with PredicateHelper {
case a And b if a.semanticEquals(b) => a
case a Or b if a.semanticEquals(b) => a
- // The following optimization is applicable only when the operands
are not nullable,
+ // The following optimizations are applicable only when the operands
are not nullable,
// since the three-value logic of AND and OR are different in NULL
handling.
// See the chart:
// +---------+---------+---------+---------+
- // | p | q | p OR q | p AND q |
+ // | operand | operand | OR | AND |
--- End diff --
AND and OR is commutative, so we can reduce the entries in this table
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]