Yuming Wang created SPARK-24916: ----------------------------------- Summary: Fix type coercion for IN expression with subquery Key: SPARK-24916 URL: https://issues.apache.org/jira/browse/SPARK-24916 Project: Spark Issue Type: Bug Components: SQL Affects Versions: 2.3.0, 2.2.0 Reporter: Yuming Wang
How to reproduce: {code:sql} CREATE TEMPORARY VIEW t4 AS SELECT * FROM VALUES (CAST(1 AS DOUBLE), CAST(2 AS STRING), CAST(3 AS STRING)) AS t1(t4a, t4b, t4c); CREATE TEMPORARY VIEW t5 AS SELECT * FROM VALUES (CAST(1 AS DECIMAL(18, 0)), CAST(2 AS STRING), CAST(3 AS BIGINT)) AS t1(t5a, t5b, t5c); SELECT * FROM t4 WHERE (t4a, t4b, t4c) IN (SELECT t5a, t5b, t5c FROM t5); {code} Will throw exception: {noformat} org.apache.spark.sql.AnalysisException cannot resolve '(named_struct('t4a', t4.`t4a`, 't4b', t4.`t4b`, 't4c', t4.`t4c`) IN (listquery()))' due to data type mismatch: The data type of one or more elements in the left hand side of an IN subquery is not compatible with the data type of the output of the subquery Mismatched columns: [(t4.`t4a`:double, t5.`t5a`:decimal(18,0)), (t4.`t4c`:string, t5.`t5c`:bigint)] Left side: [double, string, string]. Right side: [decimal(18,0), string, bigint].; {noformat} But it success on Spark 2.1.x. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org