spark git commit: [SPARK-17013][SQL] Parse negative numeric literals
Repository: spark Updated Branches: refs/heads/master abff92bfd -> 00e103a6e [SPARK-17013][SQL] Parse negative numeric literals ## What changes were proposed in this pull request? This patch updates the SQL parser to parse negative numeric literals as numeric literals, instead of unary minus of positive literals. This allows the parser to parse the minimal value for each data type, e.g. "-32768S". ## How was this patch tested? Updated test cases. Author: petermaxlee Closes #14608 from petermaxlee/SPARK-17013. Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/00e103a6 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/00e103a6 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/00e103a6 Branch: refs/heads/master Commit: 00e103a6edd1a1f001a94d41dd1f7acc40a1e30f Parents: abff92b Author: petermaxlee Authored: Thu Aug 11 23:56:55 2016 -0700 Committer: Reynold Xin Committed: Thu Aug 11 23:56:55 2016 -0700 -- .../apache/spark/sql/catalyst/parser/SqlBase.g4 | 14 +++ .../sql/catalyst/expressions/arithmetic.scala | 4 +- .../sql-tests/results/arithmetic.sql.out| 26 ++-- .../sql-tests/results/literals.sql.out | 44 ++-- .../catalyst/ExpressionSQLBuilderSuite.scala| 4 +- 5 files changed, 37 insertions(+), 55 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/00e103a6/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 -- diff --git a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 index ba65f2a..6122bcd 100644 --- a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 +++ b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 @@ -625,13 +625,13 @@ quotedIdentifier ; number -: DECIMAL_VALUE#decimalLiteral -| SCIENTIFIC_DECIMAL_VALUE #scientificDecimalLiteral -| INTEGER_VALUE#integerLiteral -| BIGINT_LITERAL #bigIntLiteral -| SMALLINT_LITERAL #smallIntLiteral -| TINYINT_LITERAL #tinyIntLiteral -| DOUBLE_LITERAL #doubleLiteral +: MINUS? DECIMAL_VALUE#decimalLiteral +| MINUS? SCIENTIFIC_DECIMAL_VALUE #scientificDecimalLiteral +| MINUS? INTEGER_VALUE#integerLiteral +| MINUS? BIGINT_LITERAL #bigIntLiteral +| MINUS? SMALLINT_LITERAL #smallIntLiteral +| MINUS? TINYINT_LITERAL #tinyIntLiteral +| MINUS? DOUBLE_LITERAL #doubleLiteral ; nonReserved http://git-wip-us.apache.org/repos/asf/spark/blob/00e103a6/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala -- diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala index 4aebef9..13e539a 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala @@ -58,7 +58,7 @@ case class UnaryMinus(child: Expression) extends UnaryExpression } } - override def sql: String = s"(-${child.sql})" + override def sql: String = s"(- ${child.sql})" } @ExpressionDescription( @@ -76,7 +76,7 @@ case class UnaryPositive(child: Expression) protected override def nullSafeEval(input: Any): Any = input - override def sql: String = s"(+${child.sql})" + override def sql: String = s"(+ ${child.sql})" } /** http://git-wip-us.apache.org/repos/asf/spark/blob/00e103a6/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out -- diff --git a/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out index 50ea254..f2b40a0 100644 --- a/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out @@ -5,7 +5,7 @@ -- !query 0 select -100 -- !query 0 schema -struct<(-100):int> +struct<-100:int> -- !query 0 output -100 @@ -21,7 +21,7 @@ struct<230:int> -- !query 2 select -5.2 -- !query 2 schema -struct<(-5.2):decimal(2,1)> +struct<-5.2:decimal(2,1)> -- !query 2 output -5.2 @@ -37,7 +37,7 @@ struct<6.8:double> -- !query 4 select -key, +key from testdata where key = 2 -- !query 4 schema -struct<(-key):int,key:int> +struct<(- key):int,key:int> -- !quer
spark git commit: [SPARK-17013][SQL] Parse negative numeric literals
Repository: spark Updated Branches: refs/heads/branch-2.0 b4047fc21 -> bde94cd71 [SPARK-17013][SQL] Parse negative numeric literals ## What changes were proposed in this pull request? This patch updates the SQL parser to parse negative numeric literals as numeric literals, instead of unary minus of positive literals. This allows the parser to parse the minimal value for each data type, e.g. "-32768S". ## How was this patch tested? Updated test cases. Author: petermaxlee Closes #14608 from petermaxlee/SPARK-17013. (cherry picked from commit 00e103a6edd1a1f001a94d41dd1f7acc40a1e30f) Signed-off-by: Reynold Xin Project: http://git-wip-us.apache.org/repos/asf/spark/repo Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/bde94cd7 Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/bde94cd7 Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/bde94cd7 Branch: refs/heads/branch-2.0 Commit: bde94cd71086fd348f3ba96de628d6df3f87dba5 Parents: b4047fc Author: petermaxlee Authored: Thu Aug 11 23:56:55 2016 -0700 Committer: Reynold Xin Committed: Thu Aug 11 23:57:01 2016 -0700 -- .../apache/spark/sql/catalyst/parser/SqlBase.g4 | 14 +++ .../sql/catalyst/expressions/arithmetic.scala | 4 +- .../sql-tests/results/arithmetic.sql.out| 26 ++-- .../sql-tests/results/literals.sql.out | 44 ++-- .../catalyst/ExpressionSQLBuilderSuite.scala| 4 +- 5 files changed, 37 insertions(+), 55 deletions(-) -- http://git-wip-us.apache.org/repos/asf/spark/blob/bde94cd7/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 -- diff --git a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 index 279a1ce..aca7282 100644 --- a/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 +++ b/sql/catalyst/src/main/antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 @@ -618,13 +618,13 @@ quotedIdentifier ; number -: DECIMAL_VALUE#decimalLiteral -| SCIENTIFIC_DECIMAL_VALUE #scientificDecimalLiteral -| INTEGER_VALUE#integerLiteral -| BIGINT_LITERAL #bigIntLiteral -| SMALLINT_LITERAL #smallIntLiteral -| TINYINT_LITERAL #tinyIntLiteral -| DOUBLE_LITERAL #doubleLiteral +: MINUS? DECIMAL_VALUE#decimalLiteral +| MINUS? SCIENTIFIC_DECIMAL_VALUE #scientificDecimalLiteral +| MINUS? INTEGER_VALUE#integerLiteral +| MINUS? BIGINT_LITERAL #bigIntLiteral +| MINUS? SMALLINT_LITERAL #smallIntLiteral +| MINUS? TINYINT_LITERAL #tinyIntLiteral +| MINUS? DOUBLE_LITERAL #doubleLiteral ; nonReserved http://git-wip-us.apache.org/repos/asf/spark/blob/bde94cd7/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala -- diff --git a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala index 7ff8795..fa459aa 100644 --- a/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala +++ b/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/arithmetic.scala @@ -57,7 +57,7 @@ case class UnaryMinus(child: Expression) extends UnaryExpression } } - override def sql: String = s"(-${child.sql})" + override def sql: String = s"(- ${child.sql})" } @ExpressionDescription( @@ -75,7 +75,7 @@ case class UnaryPositive(child: Expression) protected override def nullSafeEval(input: Any): Any = input - override def sql: String = s"(+${child.sql})" + override def sql: String = s"(+ ${child.sql})" } /** http://git-wip-us.apache.org/repos/asf/spark/blob/bde94cd7/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out -- diff --git a/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out index 50ea254..f2b40a0 100644 --- a/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out +++ b/sql/core/src/test/resources/sql-tests/results/arithmetic.sql.out @@ -5,7 +5,7 @@ -- !query 0 select -100 -- !query 0 schema -struct<(-100):int> +struct<-100:int> -- !query 0 output -100 @@ -21,7 +21,7 @@ struct<230:int> -- !query 2 select -5.2 -- !query 2 schema -struct<(-5.2):decimal(2,1)> +struct<-5.2:decimal(2,1)> -- !query 2 output -5.2 @@ -37,7 +37,7 @@ struct<6.8:double> -- !query 4 select -key, +key from tes