[ 
https://issues.apache.org/jira/browse/SPARK-54634?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wenchen Fan resolved SPARK-54634.
---------------------------------
    Fix Version/s: 4.2.0
       Resolution: Fixed

Issue resolved by pull request 53390
[https://github.com/apache/spark/pull/53390]

> Improve error message for empty IN clause: IN ()
> ------------------------------------------------
>
>                 Key: SPARK-54634
>                 URL: https://issues.apache.org/jira/browse/SPARK-54634
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>    Affects Versions: 4.0.1
>            Reporter: Sahil Kumar Singh
>            Assignee: Sahil Kumar Singh
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 4.2.0
>
>
> When users write SQL queries with an empty IN clause like:
> _SELECT * FROM table WHERE col IN ()_
> Spark currently produces a cryptic ANTLR parser error that is difficult to 
> understand and doesn't help users identify the issue.
>  
> *Current behaviour:*
> The parser fails with a confusing syntax error.
>  
> *Expected behaviour:*
> A clear error message should be displayed, indicating that IN predicates 
> require at least one value, along with suggestions for alternatives.
>  
> *Reproduction:*
> {code:java}
> spark.sql("SELECT * FROM range(10) WHERE id IN ()").show(){code}
> *Error:*
> {code:java}
> org.apache.spark.sql.catalyst.parser.ParseException:
> [PARSE_SYNTAX_ERROR] Syntax error at or near 'IN'. SQLSTATE: 42601 (line 1, 
> pos 33)
> == SQL ==
> SELECT * FROM range(10) WHERE id IN ()
> ---------------------------------^^^
>   at 
> org.apache.spark.sql.catalyst.parser.ParseException.withCommand(parsers.scala:285)
>   at 
> org.apache.spark.sql.catalyst.parser.AbstractParser.parse(parsers.scala:97)
>   at 
> org.apache.spark.sql.execution.SparkSqlParser.parse(SparkSqlParser.scala:54)
>   at 
> org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parsePlan(AbstractSqlParser.scala:93)
>   at 
> org.apache.spark.sql.classic.SparkSession.$anonfun$sql$5(SparkSession.scala:492)
>   at 
> org.apache.spark.sql.catalyst.QueryPlanningTracker.measurePhase(QueryPlanningTracker.scala:148)
>   at 
> org.apache.spark.sql.classic.SparkSession.$anonfun$sql$4(SparkSession.scala:491)
>   at org.apache.spark.sql.SparkSession.withActive(SparkSession.scala:804)
>   at org.apache.spark.sql.classic.SparkSession.sql(SparkSession.scala:490)
>   at org.apache.spark.sql.classic.SparkSession.sql(SparkSession.scala:504)
>   at org.apache.spark.sql.classic.SparkSession.sql(SparkSession.scala:513)
>   at org.apache.spark.sql.classic.SparkSession.sql(SparkSession.scala:91)
>   ... 42 elided{code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to