dongjoon-hyun commented on a change in pull request #31026:
URL: https://github.com/apache/spark/pull/31026#discussion_r552365946



##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
##########
@@ -2150,9 +2150,6 @@ class Analyzer(override val catalogManager: 
CatalogManager)
                         lead.copy(ignoreNulls = ignoreNulls)
                       case lag: Lag =>
                         lag.copy(ignoreNulls = ignoreNulls)
-                      case _ =>
-                        throw 
QueryCompilationErrors.functionWithUnsupportedSyntaxError(
-                          owf.prettyName, "IGNORE NULLS")

Review comment:
       `sealed` means we allow subclasses in the same source file. So, this is 
correct, @HyukjinKwon .

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
##########
@@ -2150,9 +2150,6 @@ class Analyzer(override val catalogManager: 
CatalogManager)
                         lead.copy(ignoreNulls = ignoreNulls)
                       case lag: Lag =>
                         lag.copy(ignoreNulls = ignoreNulls)
-                      case _ =>
-                        throw 
QueryCompilationErrors.functionWithUnsupportedSyntaxError(
-                          owf.prettyName, "IGNORE NULLS")

Review comment:
       Scala compiler intelligently understands `sealed` semantics. That is a 
compilation failure in Scala 2.13.
   > For example, we could implement some new expression that implements 
FrameLessOffsetWindowFunction later, and we forgot to fix it here.
   
   If you see the PR description of #30455 , I wrote like the following. Since 
we upgrade to Scala 2.13.4, we are safe unless the committer ignores GitHub 
Action job.
   > Fix exhaustivity issues in both Scala 2.12/2.13 (Scala 2.13.4 requires 
this for compilation.)
   
   

##########
File path: 
sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/analysis/Analyzer.scala
##########
@@ -2150,9 +2150,6 @@ class Analyzer(override val catalogManager: 
CatalogManager)
                         lead.copy(ignoreNulls = ignoreNulls)
                       case lag: Lag =>
                         lag.copy(ignoreNulls = ignoreNulls)
-                      case _ =>
-                        throw 
QueryCompilationErrors.functionWithUnsupportedSyntaxError(
-                          owf.prettyName, "IGNORE NULLS")

Review comment:
       For the example, GitHub Action job is not triggered correctly due to 
Apache's 3rd party action ban (`linter` job's `setup-r` action). Since I 
recovered the GitHub Action, I remember it correctly.
   ![Screen Shot 2021-01-05 at 11 16 19 
PM](https://user-images.githubusercontent.com/9700541/103740432-0ca45e80-4fac-11eb-9adf-683ae9ae2419.png)
   
   There is no known cases where Scala 2.13 compiler miss. If there is a 
missing case, we should report to Scala community.




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to