-
- Downloads
[SPARK-14541][SQL] Support IFNULL, NULLIF, NVL and NVL2
## What changes were proposed in this pull request? This patch adds support for a few SQL functions to improve compatibility with other databases: IFNULL, NULLIF, NVL and NVL2. In order to do this, this patch introduced a RuntimeReplaceable expression trait that allows replacing an unevaluable expression in the optimizer before evaluation. Note that the semantics are not completely identical to other databases in esoteric cases. ## How was this patch tested? Added a new test suite SQLCompatibilityFunctionSuite. Closes #12373. Author: Reynold Xin <rxin@databricks.com> Closes #13084 from rxin/SPARK-14541.
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/FunctionRegistry.scala 4 additions, 1 deletion...apache/spark/sql/catalyst/analysis/FunctionRegistry.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala 2 additions, 0 deletions...apache/spark/sql/catalyst/analysis/HiveTypeCoercion.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/Expression.scala 27 additions, 0 deletions...rg/apache/spark/sql/catalyst/expressions/Expression.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/nullExpressions.scala 77 additions, 1 deletion...ache/spark/sql/catalyst/expressions/nullExpressions.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala 12 additions, 0 deletions...a/org/apache/spark/sql/catalyst/optimizer/Optimizer.scala
- sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala 0 additions, 6 deletions.../scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala 72 additions, 0 deletions.../org/apache/spark/sql/SQLCompatibilityFunctionSuite.scala
- sql/hive/src/test/scala/org/apache/spark/sql/catalyst/ExpressionToSQLSuite.scala 0 additions, 1 deletion.../org/apache/spark/sql/catalyst/ExpressionToSQLSuite.scala
Loading
Please register or sign in to comment