[
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]