You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kyuubi.apache.org by ch...@apache.org on 2022/04/29 12:11:31 UTC

[incubator-kyuubi] branch master updated: [KYUUBI #2517] Rename ZorderSqlAstBuilder to KyuubiSparkSQLAstBuilder

This is an automated email from the ASF dual-hosted git repository.

chengpan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-kyuubi.git


The following commit(s) were added to refs/heads/master by this push:
     new 04a91e10f [KYUUBI #2517] Rename ZorderSqlAstBuilder to KyuubiSparkSQLAstBuilder
04a91e10f is described below

commit 04a91e10fa991e4cd3c21a2db20e2c39b2121c10
Author: Cheng Pan <ch...@apache.org>
AuthorDate: Fri Apr 29 20:11:22 2022 +0800

    [KYUUBI #2517] Rename ZorderSqlAstBuilder to KyuubiSparkSQLAstBuilder
    
    ### _Why are the changes needed?_
    
    Rename `ZorderSqlAstBuilder` to a generic name and then we can extend other syntax than z-order, e.g. `SHOW CATALOGS` for Spark 3.1/3.2
    
    ### _How was this patch tested?_
    - [ ] Add some test cases that check the changes thoroughly including negative and positive cases if possible
    
    - [ ] Add screenshots for manual tests if appropriate
    
    - [ ] [Run test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests) locally before make a pull request
    
    Closes #2517 from pan3793/rename.
    
    Closes #2517
    
    905189e1 [Cheng Pan] rename
    1541acf9 [Cheng Pan] Rename ZorderSqlAstBuilder to KyuubiSQLParser
    
    Authored-by: Cheng Pan <ch...@apache.org>
    Signed-off-by: Cheng Pan <ch...@apache.org>
---
 .../ZorderSqlExtensions.g4 => KyuubiSparkSQL.g4}   |  2 +-
 ...erBase.scala => KyuubiSparkSQLAstBuilder.scala} | 30 +++++++++++-----------
 .../kyuubi/sql/KyuubiSparkSQLCommonExtension.scala |  4 +--
 ...ParserBase.scala => KyuubiSparkSQLParser.scala} | 20 +++++++--------
 4 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/zorder/ZorderSqlExtensions.g4 b/extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/KyuubiSparkSQL.g4
similarity index 99%
rename from extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/zorder/ZorderSqlExtensions.g4
rename to extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/KyuubiSparkSQL.g4
index fbb0f5e42..63e2bf848 100644
--- a/extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/zorder/ZorderSqlExtensions.g4
+++ b/extensions/spark/kyuubi-extension-spark-common/src/main/antlr4/org/apache/kyuubi/sql/KyuubiSparkSQL.g4
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-grammar ZorderSqlExtensions;
+grammar KyuubiSparkSQL;
 
 @members {
    /**
diff --git a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSqlAstBuilderBase.scala b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLAstBuilder.scala
similarity index 91%
rename from extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSqlAstBuilderBase.scala
rename to extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLAstBuilder.scala
index 7448472a8..9f1958b09 100644
--- a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSqlAstBuilderBase.scala
+++ b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLAstBuilder.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.kyuubi.sql.zorder
+package org.apache.kyuubi.sql
 
 import java.time.LocalDate
 import java.util.Locale
@@ -29,7 +29,7 @@ import org.antlr.v4.runtime.tree.{ParseTree, TerminalNode}
 import org.apache.commons.codec.binary.Hex
 import org.apache.spark.sql.AnalysisException
 import org.apache.spark.sql.catalyst.analysis.{UnresolvedAttribute, UnresolvedRelation, UnresolvedStar}
-import org.apache.spark.sql.catalyst.expressions.{And, Ascending, EqualNullSafe, EqualTo, Expression, GreaterThan, GreaterThanOrEqual, LessThan, LessThanOrEqual, Literal, Not, NullsLast, Or, SortOrder}
+import org.apache.spark.sql.catalyst.expressions._
 import org.apache.spark.sql.catalyst.parser.ParseException
 import org.apache.spark.sql.catalyst.parser.ParserUtils.{string, stringWithoutUnescape, withOrigin}
 import org.apache.spark.sql.catalyst.plans.logical.{Filter, LogicalPlan, Project, Sort}
@@ -40,10 +40,10 @@ import org.apache.spark.sql.internal.SQLConf
 import org.apache.spark.sql.types._
 import org.apache.spark.unsafe.types.UTF8String
 
-import org.apache.kyuubi.sql.KyuubiSQLConf
-import org.apache.kyuubi.sql.zorder.ZorderSqlExtensionsParser.{BigDecimalLiteralContext, BigIntLiteralContext, BooleanLiteralContext, DecimalLiteralContext, DoubleLiteralContext, IntegerLiteralContext, LogicalBinaryContext, MultipartIdentifierContext, NullLiteralContext, NumberContext, OptimizeZorderContext, PassThroughContext, QueryContext, SingleStatementContext, SmallIntLiteralContext, StringLiteralContext, TinyIntLiteralContext, TypeConstructorContext, ZorderClauseContext}
+import org.apache.kyuubi.sql.KyuubiSparkSQLParser._
+import org.apache.kyuubi.sql.zorder.{OptimizeZorderStatement, OptimizeZorderStatementBase, Zorder, ZorderBase}
 
-abstract class ZorderSqlAstBuilderBase extends ZorderSqlExtensionsBaseVisitor[AnyRef] {
+abstract class KyuubiSparkSQLAstBuilderBase extends KyuubiSparkSQLBaseVisitor[AnyRef] {
   def buildZorder(child: Seq[Expression]): ZorderBase
   def buildOptimizeZorderStatement(
       tableIdentifier: Seq[String],
@@ -105,19 +105,19 @@ abstract class ZorderSqlAstBuilderBase extends ZorderSqlExtensionsBaseVisitor[An
     val right = expression(ctx.constant())
     val operator = ctx.comparisonOperator().getChild(0).asInstanceOf[TerminalNode]
     operator.getSymbol.getType match {
-      case ZorderSqlExtensionsParser.EQ =>
+      case KyuubiSparkSQLParser.EQ =>
         EqualTo(left, right)
-      case ZorderSqlExtensionsParser.NSEQ =>
+      case KyuubiSparkSQLParser.NSEQ =>
         EqualNullSafe(left, right)
-      case ZorderSqlExtensionsParser.NEQ | ZorderSqlExtensionsParser.NEQJ =>
+      case KyuubiSparkSQLParser.NEQ | KyuubiSparkSQLParser.NEQJ =>
         Not(EqualTo(left, right))
-      case ZorderSqlExtensionsParser.LT =>
+      case KyuubiSparkSQLParser.LT =>
         LessThan(left, right)
-      case ZorderSqlExtensionsParser.LTE =>
+      case KyuubiSparkSQLParser.LTE =>
         LessThanOrEqual(left, right)
-      case ZorderSqlExtensionsParser.GT =>
+      case KyuubiSparkSQLParser.GT =>
         GreaterThan(left, right)
-      case ZorderSqlExtensionsParser.GTE =>
+      case KyuubiSparkSQLParser.GTE =>
         GreaterThanOrEqual(left, right)
     }
   }
@@ -125,8 +125,8 @@ abstract class ZorderSqlAstBuilderBase extends ZorderSqlExtensionsBaseVisitor[An
   override def visitLogicalBinary(ctx: LogicalBinaryContext): Expression = withOrigin(ctx) {
     val expressionType = ctx.operator.getType
     val expressionCombiner = expressionType match {
-      case ZorderSqlExtensionsParser.AND => And.apply _
-      case ZorderSqlExtensionsParser.OR => Or.apply _
+      case KyuubiSparkSQLParser.AND => And.apply _
+      case KyuubiSparkSQLParser.OR => Or.apply _
     }
 
     // Collect all similar left hand contexts.
@@ -437,7 +437,7 @@ abstract class ZorderSqlAstBuilderBase extends ZorderSqlExtensionsBaseVisitor[An
   }
 }
 
-class ZorderSqlAstBuilder extends ZorderSqlAstBuilderBase {
+class KyuubiSparkSQLAstBuilder extends KyuubiSparkSQLAstBuilderBase {
   override def buildZorder(child: Seq[Expression]): ZorderBase = {
     Zorder(child)
   }
diff --git a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLCommonExtension.scala b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLCommonExtension.scala
index d46a39624..3343946e8 100644
--- a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLCommonExtension.scala
+++ b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLCommonExtension.scala
@@ -19,7 +19,7 @@ package org.apache.kyuubi.sql
 
 import org.apache.spark.sql.SparkSessionExtensions
 
-import org.apache.kyuubi.sql.zorder.{InsertZorderBeforeWritingDatasource, InsertZorderBeforeWritingHive, ResolveZorder, ZorderSparkSqlExtensionsParser}
+import org.apache.kyuubi.sql.zorder.{InsertZorderBeforeWritingDatasource, InsertZorderBeforeWritingHive, ResolveZorder}
 
 class KyuubiSparkSQLCommonExtension extends (SparkSessionExtensions => Unit) {
   override def apply(extensions: SparkSessionExtensions): Unit = {
@@ -30,7 +30,7 @@ class KyuubiSparkSQLCommonExtension extends (SparkSessionExtensions => Unit) {
 object KyuubiSparkSQLCommonExtension {
   def injectCommonExtensions(extensions: SparkSessionExtensions): Unit = {
     // inject zorder parser and related rules
-    extensions.injectParser { case (_, parser) => new ZorderSparkSqlExtensionsParser(parser) }
+    extensions.injectParser { case (_, parser) => new SparkKyuubiSparkSQLParser(parser) }
     extensions.injectResolutionRule(ResolveZorder)
 
     // Note that:
diff --git a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSparkSqlExtensionsParserBase.scala b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLParser.scala
similarity index 88%
rename from extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSparkSqlExtensionsParserBase.scala
rename to extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLParser.scala
index 63898b77b..2f12a82e2 100644
--- a/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/zorder/ZorderSparkSqlExtensionsParserBase.scala
+++ b/extensions/spark/kyuubi-extension-spark-common/src/main/scala/org/apache/kyuubi/sql/KyuubiSparkSQLParser.scala
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.kyuubi.sql.zorder
+package org.apache.kyuubi.sql
 
 import org.antlr.v4.runtime._
 import org.antlr.v4.runtime.atn.PredictionMode
@@ -28,9 +28,9 @@ import org.apache.spark.sql.catalyst.plans.logical.LogicalPlan
 import org.apache.spark.sql.catalyst.trees.Origin
 import org.apache.spark.sql.types.{DataType, StructType}
 
-abstract class ZorderSparkSqlExtensionsParserBase extends ParserInterface {
+abstract class KyuubiSparkSQLParserBase extends ParserInterface {
   def delegate: ParserInterface
-  def astBuilder: ZorderSqlAstBuilderBase
+  def astBuilder: KyuubiSparkSQLAstBuilderBase
 
   override def parsePlan(sqlText: String): LogicalPlan = parse(sqlText) { parser =>
     astBuilder.visit(parser.singleStatement()) match {
@@ -39,14 +39,14 @@ abstract class ZorderSparkSqlExtensionsParserBase extends ParserInterface {
     }
   }
 
-  protected def parse[T](command: String)(toResult: ZorderSqlExtensionsParser => T): T = {
-    val lexer = new ZorderSqlExtensionsLexer(
+  protected def parse[T](command: String)(toResult: KyuubiSparkSQLParser => T): T = {
+    val lexer = new KyuubiSparkSQLLexer(
       new UpperCaseCharStream(CharStreams.fromString(command)))
     lexer.removeErrorListeners()
     lexer.addErrorListener(ParseErrorListener)
 
     val tokenStream = new CommonTokenStream(lexer)
-    val parser = new ZorderSqlExtensionsParser(tokenStream)
+    val parser = new KyuubiSparkSQLParser(tokenStream)
     parser.addParseListener(PostProcessor)
     parser.removeErrorListeners()
     parser.addErrorListener(ParseErrorListener)
@@ -102,15 +102,15 @@ abstract class ZorderSparkSqlExtensionsParserBase extends ParserInterface {
   }
 }
 
-class ZorderSparkSqlExtensionsParser(
+class SparkKyuubiSparkSQLParser(
     override val delegate: ParserInterface)
-  extends ZorderSparkSqlExtensionsParserBase {
-  def astBuilder: ZorderSqlAstBuilderBase = new ZorderSqlAstBuilder
+  extends KyuubiSparkSQLParserBase {
+  def astBuilder: KyuubiSparkSQLAstBuilderBase = new KyuubiSparkSQLAstBuilder
 }
 
 /* Copied from Apache Spark's to avoid dependency on Spark Internals */
 class UpperCaseCharStream(wrapped: CodePointCharStream) extends CharStream {
-  override def consume(): Unit = wrapped.consume
+  override def consume(): Unit = wrapped.consume()
   override def getSourceName(): String = wrapped.getSourceName
   override def index(): Int = wrapped.index
   override def mark(): Int = wrapped.mark