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