Github user dilipbiswal commented on a diff in the pull request:
https://github.com/apache/spark/pull/22408#discussion_r217279564
--- 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 Thank you. I also thought of using
`findWiderTypeWithoutStringPromotion` but later changed it to
`findTightestCommonType`. One question i had was, can
`findWiderTypeWithoutStringPromotion` do a lossy conversion. From the class
description it seems only findTightestCommonType does a absolute safe casting ?
Please let me know what you think ..
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]