[
https://issues.apache.org/jira/browse/SOLR-8593?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15664595#comment-15664595
]
Julian Hyde commented on SOLR-8593:
-----------------------------------
You're making a mistake I see a lot of people making: trying to do complex
semantic transformations on the AST (SqlNode). That's an anti-pattern, because
SQL's complex rules for name-resolution make the AST very brittle. You should
do those kinds of transformations on the relational algebra tree (RelNode).
In fact, Calcite will convert query into a {{Scan -> Filter -> Aggregate ->
Filter -> Project}} logical plan (the first Filter is the WHERE clause, the
second Filter is the HAVING clause), so I don't think you need to do any tricky
processing looking for aliases.
> Integrate Apache Calcite into the SQLHandler
> --------------------------------------------
>
> Key: SOLR-8593
> URL: https://issues.apache.org/jira/browse/SOLR-8593
> Project: Solr
> Issue Type: Improvement
> Reporter: Joel Bernstein
> Assignee: Joel Bernstein
> Attachments: SOLR-8593.patch
>
>
> The Presto SQL Parser was perfect for phase one of the SQLHandler. It was
> nicely split off from the larger Presto project and it did everything that
> was needed for the initial implementation.
> Phase two of the SQL work though will require an optimizer. Here is where
> Apache Calcite comes into play. It has a battle tested cost based optimizer
> and has been integrated into Apache Drill and Hive.
> This work can begin in trunk following the 6.0 release. The final query plans
> will continue to be translated to Streaming API objects (TupleStreams), so
> continued work on the JDBC driver should plug in nicely with the Calcite work.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]