@@ -62,16 +62,17 @@ trait ConstraintHelper {
6262 */
6363 def inferAdditionalConstraints (constraints : Set [Expression ]): Set [Expression ] = {
6464 var inferredConstraints = Set .empty[Expression ]
65- val binaryComparisons = constraints.filter(_.isInstanceOf [BinaryComparison ])
65+ // IsNotNull should be constructed by `constructIsNotNullConstraints`.
66+ val predicates = constraints.filterNot(_.isInstanceOf [IsNotNull ])
6667 constraints.foreach {
6768 case eq @ EqualTo (l : Attribute , r : Attribute ) =>
68- val candidateConstraints = binaryComparisons - eq
69+ val candidateConstraints = predicates - eq
6970 inferredConstraints ++= replaceConstraints(candidateConstraints, l, r)
7071 inferredConstraints ++= replaceConstraints(candidateConstraints, r, l)
7172 case eq @ EqualTo (l @ Cast (_ : Attribute , _, _), r : Attribute ) =>
72- inferredConstraints ++= replaceConstraints(binaryComparisons - eq, r, l)
73+ inferredConstraints ++= replaceConstraints(predicates - eq, r, l)
7374 case eq @ EqualTo (l : Attribute , r @ Cast (_ : Attribute , _, _)) =>
74- inferredConstraints ++= replaceConstraints(binaryComparisons - eq, l, r)
75+ inferredConstraints ++= replaceConstraints(predicates - eq, l, r)
7576 case _ => // No inference
7677 }
7778 inferredConstraints -- constraints
0 commit comments