You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@spark.apache.org by do...@apache.org on 2020/02/05 01:27:18 UTC
[spark] branch master updated: Revert "[SPARK-28310][SQL] Support
(FIRST_VALUE|LAST_VALUE)(expr[ (IGNORE|RESPECT) NULLS]?) syntax"
This is an automated email from the ASF dual-hosted git repository.
dongjoon pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new 8987169 Revert "[SPARK-28310][SQL] Support (FIRST_VALUE|LAST_VALUE)(expr[ (IGNORE|RESPECT) NULLS]?) syntax"
8987169 is described below
commit 898716980dce44a4cc09411e72d64c848698cad5
Author: Dongjoon Hyun <dh...@apple.com>
AuthorDate: Tue Feb 4 17:26:46 2020 -0800
Revert "[SPARK-28310][SQL] Support (FIRST_VALUE|LAST_VALUE)(expr[ (IGNORE|RESPECT) NULLS]?) syntax"
### What changes were proposed in this pull request?
This reverts commit b89c3de1a439ed7302dd8f44c49b89bb7da2eebe.
### Why are the changes needed?
`FIRST_VALUE` is used only for window expression. Please see the discussion on https://github.com/apache/spark/pull/25082 .
### Does this PR introduce any user-facing change?
Yes.
### How was this patch tested?
Pass the Jenkins.
Closes #27458 from dongjoon-hyun/SPARK-28310.
Authored-by: Dongjoon Hyun <dh...@apple.com>
Signed-off-by: Dongjoon Hyun <dh...@apple.com>
---
docs/sql-keywords.md | 3 ---
.../antlr4/org/apache/spark/sql/catalyst/parser/SqlBase.g4 | 11 ++---------
.../spark/sql/catalyst/parser/ExpressionParserSuite.scala | 9 ---------
.../sql/catalyst/parser/TableIdentifierParserSuite.scala | 5 -----
4 files changed, 2 insertions(+), 26 deletions(-)
diff --git a/docs/sql-keywords.md b/docs/sql-keywords.md
index b188553..9e4a3c5 100644
--- a/docs/sql-keywords.md
+++ b/docs/sql-keywords.md
@@ -119,7 +119,6 @@ Below is a list of all the keywords in Spark SQL.
<tr><td>FILTER</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>FILEFORMAT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>FIRST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
- <tr><td>FIRST_VALUE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>FOLLOWING</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>FOR</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>FOREIGN</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
@@ -153,7 +152,6 @@ Below is a list of all the keywords in Spark SQL.
<tr><td>JOIN</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
<tr><td>KEYS</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>LAST</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
- <tr><td>LAST_VALUE</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>LATERAL</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>LAZY</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>LEADING</td><td>reserved</td><td>non-reserved</td><td>reserved</td></tr>
@@ -221,7 +219,6 @@ Below is a list of all the keywords in Spark SQL.
<tr><td>REPAIR</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>REPLACE</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>RESET</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
- <tr><td>RESPECT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>RESTRICT</td><td>non-reserved</td><td>non-reserved</td><td>non-reserved</td></tr>
<tr><td>REVOKE</td><td>non-reserved</td><td>non-reserved</td><td>reserved</td></tr>
<tr><td>RIGHT</td><td>reserved</td><td>strict-non-reserved</td><td>reserved</td></tr>
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 6f2bb7a..08d5ff5 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
@@ -771,8 +771,8 @@ primaryExpression
| CASE value=expression whenClause+ (ELSE elseExpression=expression)? END #simpleCase
| CAST '(' expression AS dataType ')' #cast
| STRUCT '(' (argument+=namedExpression (',' argument+=namedExpression)*)? ')' #struct
- | (FIRST | FIRST_VALUE) '(' expression ((IGNORE | RESPECT) NULLS)? ')' #first
- | (LAST | LAST_VALUE) '(' expression ((IGNORE | RESPECT) NULLS)? ')' #last
+ | FIRST '(' expression (IGNORE NULLS)? ')' #first
+ | LAST '(' expression (IGNORE NULLS)? ')' #last
| POSITION '(' substr=valueExpression IN str=valueExpression ')' #position
| constant #constantDefault
| ASTERISK #star
@@ -1120,7 +1120,6 @@ ansiNonReserved
| REPAIR
| REPLACE
| RESET
- | RESPECT
| RESTRICT
| REVOKE
| RLIKE
@@ -1280,7 +1279,6 @@ nonReserved
| FIELDS
| FILEFORMAT
| FIRST
- | FIRST_VALUE
| FOLLOWING
| FOR
| FOREIGN
@@ -1310,7 +1308,6 @@ nonReserved
| ITEMS
| KEYS
| LAST
- | LAST_VALUE
| LATERAL
| LAZY
| LEADING
@@ -1374,7 +1371,6 @@ nonReserved
| REPAIR
| REPLACE
| RESET
- | RESPECT
| RESTRICT
| REVOKE
| RLIKE
@@ -1531,7 +1527,6 @@ FIELDS: 'FIELDS';
FILTER: 'FILTER';
FILEFORMAT: 'FILEFORMAT';
FIRST: 'FIRST';
-FIRST_VALUE: 'FIRST_VALUE';
FOLLOWING: 'FOLLOWING';
FOR: 'FOR';
FOREIGN: 'FOREIGN';
@@ -1565,7 +1560,6 @@ ITEMS: 'ITEMS';
JOIN: 'JOIN';
KEYS: 'KEYS';
LAST: 'LAST';
-LAST_VALUE: 'LAST_VALUE';
LATERAL: 'LATERAL';
LAZY: 'LAZY';
LEADING: 'LEADING';
@@ -1632,7 +1626,6 @@ RENAME: 'RENAME';
REPAIR: 'REPAIR';
REPLACE: 'REPLACE';
RESET: 'RESET';
-RESPECT: 'RESPECT';
RESTRICT: 'RESTRICT';
REVOKE: 'REVOKE';
RIGHT: 'RIGHT';
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/ExpressionParserSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/ExpressionParserSuite.scala
index 85efc6a..df012cc 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/ExpressionParserSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/ExpressionParserSuite.scala
@@ -771,15 +771,6 @@ class ExpressionParserSuite extends AnalysisTest {
assertEqual("last(a)", Last('a, Literal(false)).toAggregateExpression())
}
- test("Support respect nulls keywords for first_value and last_value") {
- assertEqual("first_value(a ignore nulls)", First('a, Literal(true)).toAggregateExpression())
- assertEqual("first_value(a respect nulls)", First('a, Literal(false)).toAggregateExpression())
- assertEqual("first_value(a)", First('a, Literal(false)).toAggregateExpression())
- assertEqual("last_value(a ignore nulls)", Last('a, Literal(true)).toAggregateExpression())
- assertEqual("last_value(a respect nulls)", Last('a, Literal(false)).toAggregateExpression())
- assertEqual("last_value(a)", Last('a, Literal(false)).toAggregateExpression())
- }
-
test("timestamp literals") {
DateTimeTestUtils.outstandingTimezones.foreach { timeZone =>
withSQLConf(SQLConf.SESSION_LOCAL_TIMEZONE.key -> timeZone.getID) {
diff --git a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
index 43244b3..053d578 100644
--- a/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
+++ b/sql/catalyst/src/test/scala/org/apache/spark/sql/catalyst/parser/TableIdentifierParserSuite.scala
@@ -369,7 +369,6 @@ class TableIdentifierParserSuite extends SparkFunSuite with SQLHelper {
"fields",
"fileformat",
"first",
- "first_value",
"following",
"for",
"foreign",
@@ -403,7 +402,6 @@ class TableIdentifierParserSuite extends SparkFunSuite with SQLHelper {
"join",
"keys",
"last",
- "last_value",
"lateral",
"lazy",
"leading",
@@ -467,7 +465,6 @@ class TableIdentifierParserSuite extends SparkFunSuite with SQLHelper {
"repair",
"replace",
"reset",
- "respect",
"restrict",
"revoke",
"right",
@@ -562,7 +559,6 @@ class TableIdentifierParserSuite extends SparkFunSuite with SQLHelper {
"except",
"false",
"fetch",
- "first_value",
"for",
"foreign",
"from",
@@ -577,7 +573,6 @@ class TableIdentifierParserSuite extends SparkFunSuite with SQLHelper {
"into",
"join",
"is",
- "last_value",
"leading",
"left",
"minute",
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@spark.apache.org
For additional commands, e-mail: commits-help@spark.apache.org