-
- Downloads
[SPARK-3654][SQL] Unifies SQL and HiveQL parsers
This PR is a follow up of #2590, and tries to introduce a top level SQL parser entry point for all SQL dialects supported by Spark SQL. A top level parser `SparkSQLParser` is introduced to handle the syntaxes that all SQL dialects should recognize (e.g. `CACHE TABLE`, `UNCACHE TABLE` and `SET`, etc.). For all the syntaxes this parser doesn't recognize directly, it fallbacks to a specified function that tries to parse arbitrary input to a `LogicalPlan`. This function is typically another parser combinator like `SqlParser`. DDL syntaxes introduced in #2475 can be moved to here. The `ExtendedHiveQlParser` now only handle Hive specific extensions. Also took the chance to refactor/reformat `SqlParser` for better readability. Author: Cheng Lian <lian.cs.zju@gmail.com> Closes #2698 from liancheng/gen-sql-parser and squashes the following commits: ceada76 [Cheng Lian] Minor styling fixes 9738934 [Cheng Lian] Minor refactoring, removes optional trailing ";" in the parser bb2ab12 [Cheng Lian] SET property value can be empty string ce8860b [Cheng Lian] Passes test suites e86968e [Cheng Lian] Removes debugging code 8bcace5 [Cheng Lian] Replaces digit.+ to rep1(digit) (Scala style checking doesn't like it) d15d54f [Cheng Lian] Unifies SQL and HiveQL parsers
Showing
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SparkSQLParser.scala 186 additions, 0 deletions.../scala/org/apache/spark/sql/catalyst/SparkSQLParser.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/SqlParser.scala 156 additions, 270 deletions.../main/scala/org/apache/spark/sql/catalyst/SqlParser.scala
- sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/plans/logical/commands.scala 13 additions, 2 deletions...rg/apache/spark/sql/catalyst/plans/logical/commands.scala
- sql/core/src/main/scala/org/apache/spark/sql/SQLContext.scala 7 additions, 2 deletions...core/src/main/scala/org/apache/spark/sql/SQLContext.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/SparkStrategies.scala 2 additions, 2 deletions...cala/org/apache/spark/sql/execution/SparkStrategies.scala
- sql/core/src/main/scala/org/apache/spark/sql/execution/commands.scala 15 additions, 19 deletions.../main/scala/org/apache/spark/sql/execution/commands.scala
- sql/core/src/test/scala/org/apache/spark/sql/CachedTableSuite.scala 1 addition, 1 deletion...rc/test/scala/org/apache/spark/sql/CachedTableSuite.scala
- sql/core/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala 1 addition, 3 deletions...e/src/test/scala/org/apache/spark/sql/SQLQuerySuite.scala
- sql/hive-thriftserver/src/main/scala/org/apache/spark/sql/hive/thriftserver/server/SparkSQLOperationManager.scala 1 addition, 1 deletion...l/hive/thriftserver/server/SparkSQLOperationManager.scala
- sql/hive/src/main/scala/org/apache/spark/sql/hive/ExtendedHiveQlParser.scala 21 additions, 89 deletions...cala/org/apache/spark/sql/hive/ExtendedHiveQlParser.scala
- sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala 7 additions, 8 deletions...ive/src/main/scala/org/apache/spark/sql/hive/HiveQl.scala
- sql/hive/src/main/scala/org/apache/spark/sql/hive/HiveStrategies.scala 4 additions, 4 deletions...main/scala/org/apache/spark/sql/hive/HiveStrategies.scala
Loading
Please register or sign in to comment