-
- Downloads
[SPARK-20329][SQL] Make timezone aware expression without timezone unresolved
## What changes were proposed in this pull request? A cast expression with a resolved time zone is not equal to a cast expression without a resolved time zone. The `ResolveAggregateFunction` assumed that these expression were the same, and would fail to resolve `HAVING` clauses which contain a `Cast` expression. This is in essence caused by the fact that a `TimeZoneAwareExpression` can be resolved without a set time zone. This PR fixes this, and makes a `TimeZoneAwareExpression` unresolved as long as it has no TimeZone set. ## How was this patch tested? Added a regression test to the `SQLQueryTestSuite.having` file. Author: Herman van Hovell <hvanhovell@databricks.com> Closes #17641 from hvanhovell/SPARK-20329.
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala 1 addition, 19 deletions...ala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/ResolveInlineTables.scala 3 additions, 7 deletions...che/spark/sql/catalyst/analysis/ResolveInlineTables.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/timeZoneAnalysis.scala 61 additions, 0 deletions...apache/spark/sql/catalyst/analysis/timeZoneAnalysis.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/view.scala 2 additions, 2 deletions...n/scala/org/apache/spark/sql/catalyst/analysis/view.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/datetimeExpressions.scala 3 additions, 1 deletion.../spark/sql/catalyst/expressions/datetimeExpressions.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/ResolveInlineTablesSuite.scala 6 additions, 4 deletions...park/sql/catalyst/analysis/ResolveInlineTablesSuite.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/analysis/TypeCoercionSuite.scala 19 additions, 16 deletions...pache/spark/sql/catalyst/analysis/TypeCoercionSuite.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/CastSuite.scala 2 additions, 2 deletions...org/apache/spark/sql/catalyst/expressions/CastSuite.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/DateExpressionsSuite.scala 3 additions, 3 deletions...spark/sql/catalyst/expressions/DateExpressionsSuite.scala
- sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/expressions/ExpressionEvalHelper.scala 5 additions, 2 deletions...spark/sql/catalyst/expressions/ExpressionEvalHelper.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/SparkPlanner.scala 1 addition, 1 deletion...n/scala/org/apache/spark/sql/execution/SparkPlanner.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/DataSourceStrategy.scala 12 additions, 8 deletions.../spark/sql/execution/datasources/DataSourceStrategy.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/datasources/rules.scala 3 additions, 3 deletions...la/org/apache/spark/sql/execution/datasources/rules.scala
- sql/core/src/main/scala/org/apache/spark/sql/internal/BaseSessionStateBuilder.scala 1 addition, 1 deletion...g/apache/spark/sql/internal/BaseSessionStateBuilder.scala
- sql/core/src/test/resources/sql-tests/inputs/having.sql 3 additions, 0 deletionssql/core/src/test/resources/sql-tests/inputs/having.sql
- sql/core/src/test/resources/sql-tests/results/having.sql.out 10 additions, 1 deletionsql/core/src/test/resources/sql-tests/results/having.sql.out
- sql/core/src/test/scala/org/apache/spark/sql/sources/BucketedReadSuite.scala 2 additions, 1 deletion...cala/org/apache/spark/sql/sources/BucketedReadSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/sources/DataSourceAnalysisSuite.scala 10 additions, 6 deletions...rg/apache/spark/sql/sources/DataSourceAnalysisSuite.scala
- sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveSessionStateBuilder.scala 1 addition, 1 deletion...a/org/apache/spark/sql/hive/HiveSessionStateBuilder.scala
Loading
Please register or sign in to comment