spark-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nong Li (JIRA)" <>
Subject [jira] [Commented] (SPARK-12362) Create a full-fledged built-in SQL parser
Date Mon, 21 Dec 2015 18:49:46 GMT


Nong Li commented on SPARK-12362:

I think it makes sense to inline the hive ql parser into spark sql.  This satisfies the requirements
in a pretty good way.

It is maximally HiveQL compatible and what the existing spark sql integration is built on.
The parser uses antlr and looks
to be easy to extend going forward. Inlining it would involve taking some of the existing
code in the hive.ql.parse package,
restricting it to the code that deals with parsing and not semantic analysis.

> Create a full-fledged built-in SQL parser
> -----------------------------------------
>                 Key: SPARK-12362
>                 URL:
>             Project: Spark
>          Issue Type: Improvement
>          Components: SQL
>            Reporter: Reynold Xin
> Spark currently has two SQL parsers it is using: a simple one based on Scala parser combinator,
and another one based on Hive.
> Neither is a good long term solution. The parser combinator one has bad error messages
for users and does not warn when there are conflicts in the defined grammar. The Hive one
depends directly on Hive itself, and as a result, it is very difficult to introduce new grammar
or fix bugs.
> The goal of the ticket is to create a single SQL query parser that is powerful enough
to replace the existing ones. The requirements for the new parser are:
> 1. Can support almost all of HiveQL
> 2. Can support all existing SQL parser built using Scala parser combinators
> 3. Can be used for expression parsing in addition to SQL query parsing
> 4. Can provide good error messages for incorrect syntax
> Rather than building one from scratch, we should investigate whether we can leverage
existing open source projects such as Hive (by inlining the parser part) or Calcite.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message