-
- Downloads
[SPARK-18214][SQL] Simplify RuntimeReplaceable type coercion
## What changes were proposed in this pull request? RuntimeReplaceable is used to create aliases for expressions, but the way it deals with type coercion is pretty weird (each expression is responsible for how to handle type coercion, which does not obey the normal implicit type cast rules). This patch simplifies its handling by allowing the analyzer to traverse into the actual expression of a RuntimeReplaceable. ## How was this patch tested? - Correctness should be guaranteed by existing unit tests already - Removed SQLCompatibilityFunctionSuite and moved it sql-compatibility-functions.sql - Added a new test case in sql-compatibility-functions.sql for verifying explain behavior. Author: Reynold Xin <rxin@databricks.com> Closes #15723 from rxin/SPARK-18214. (cherry picked from commit fd90541c) Signed-off-by:Reynold Xin <rxin@databricks.com>
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala 0 additions, 2 deletions...org/apache/spark/sql/catalyst/analysis/TypeCoercion.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala 10 additions, 20 deletions...rg/apache/spark/sql/catalyst/expressions/Expression.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala 0 additions, 2 deletions.../spark/sql/catalyst/expressions/datetimeExpressions.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala 25 additions, 50 deletions...ache/spark/sql/catalyst/expressions/nullExpressions.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/finishAnalysis.scala 1 addition, 1 deletion.../apache/spark/sql/catalyst/optimizer/finishAnalysis.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/NullFunctionsSuite.scala 13 additions, 6 deletions...e/spark/sql/catalyst/expressions/NullFunctionsSuite.scala
- sql/core/src/test/resources/sql-tests/inputs/sql-compatibility-functions.sql 25 additions, 0 deletions...esources/sql-tests/inputs/sql-compatibility-functions.sql
- sql/core/src/test/resources/sql-tests/results/array.sql.out 4 additions, 1 deletionsql/core/src/test/resources/sql-tests/results/array.sql.out
- sql/core/src/test/resources/sql-tests/results/sql-compatibility-functions.sql.out 124 additions, 0 deletions...ces/sql-tests/results/sql-compatibility-functions.sql.out
- sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala 0 additions, 98 deletions.../org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala 2 additions, 2 deletions...c/test/scala/org/apache/spark/sql/SQLQueryTestSuite.scala
Loading
Please register or sign in to comment