Github user dilipbiswal commented on a diff in the pull request: https://github.com/apache/spark/pull/22408#discussion_r217603789 --- 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 Sure. We could use `findWiderCommonType`. My thinking was, since we are injecting this cast implicitly, we should pick the safest cast so we don't see data dependent surprises. Users could always specify an explicit cast and take the the responsibility of the result :-) However, i don't have a strong opinion. I will change it use findWiderCommonType
--- --------------------------------------------------------------------- To unsubscribe, e-mail: reviews-unsubscr...@spark.apache.org For additional commands, e-mail: reviews-h...@spark.apache.org