aboutsummaryrefslogtreecommitdiff
path: root/sql/catalyst/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sql/catalyst/src/test')
-rw-r--r--sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala17
1 files changed, 17 insertions, 0 deletions
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
index 5a76969235..8d6a49a8a3 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/plans/ConstraintPropagationSuite.scala
@@ -352,4 +352,21 @@ class ConstraintPropagationSuite extends SparkFunSuite {
verifyConstraints(tr.analyze.constraints,
ExpressionSet(Seq(IsNotNull(resolveColumn(tr, "b")), IsNotNull(resolveColumn(tr, "c")))))
}
+
+ test("not infer non-deterministic constraints") {
+ val tr = LocalRelation('a.int, 'b.string, 'c.int)
+
+ verifyConstraints(tr
+ .where('a.attr === Rand(0))
+ .analyze.constraints,
+ ExpressionSet(Seq(IsNotNull(resolveColumn(tr, "a")))))
+
+ verifyConstraints(tr
+ .where('a.attr === InputFileName())
+ .where('a.attr =!= 'c.attr)
+ .analyze.constraints,
+ ExpressionSet(Seq(resolveColumn(tr, "a") =!= resolveColumn(tr, "c"),
+ IsNotNull(resolveColumn(tr, "a")),
+ IsNotNull(resolveColumn(tr, "c")))))
+ }
}