Github user dilipbiswal commented on a diff in the pull request:
https://github.com/apache/spark/pull/22408#discussion_r217274391
--- Diff:
sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala ---
@@ -735,6 +735,44 @@ class DataFrameFunctionsSuite extends QueryTest with
SharedSQLContext {
df.selectExpr("array_contains(array(1, null), array(1, null)[0])"),
Seq(Row(true), Row(true))
)
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(1), 1.23D)"),
+ Seq(Row(false), Row(false))
+ )
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(1), 1.0D)"),
+ Seq(Row(true), Row(true))
+ )
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(1.0D), 1)"),
+ Seq(Row(true), Row(true))
+ )
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(1.23D), 1)"),
+ Seq(Row(false), Row(false))
+ )
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(array(1)), array(1.0D))"),
+ Seq(Row(true), Row(true))
+ )
+
+ checkAnswer(
+ df.selectExpr("array_contains(array(array(1)), array(1.23D))"),
+ Seq(Row(false), Row(false))
+ )
+
+ intercept[AnalysisException] {
+ df.selectExpr("array_contains(array(1), 1.23)")
--- End diff --
@ueshin This fails since 1.23 is parsed as decimal(3, 2). And
`findTightestCommonType` can not find a common type between integer and
decimal(3,2). I specifically added this case to draw it to your attention to
see if we are okay with this behaviour :-). If we had it as `1.23D` then we
would have been able to find a common type.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]