Vladislav Pyatkov created IGNITE-28999:
------------------------------------------
Summary: Plugable SQL grama for Calcite SQL engine
Key: IGNITE-28999
URL: https://issues.apache.org/jira/browse/IGNITE-28999
Project: Ignite
Issue Type: Improvement
Reporter: Vladislav Pyatkov
h3.Motivation
SQL syntax varies across database systems. In some cases, Ignite needs to
support non-ANSI SQL syntax or database-specific extensions.
Apache Calcite allows a custom SQL parser to be generated from an extended
grammar. A similar approach can be used in Ignite so that plugins can introduce
additional SQL statements or clauses while retaining the standard Calcite
syntax and all Ignite-specific SQL extensions.
h3.Implementation Notes
Add the ability for an Ignite plugin to provide a custom SQL parser.
The Ignite-specific grammar files (`config.fmpp` and `parserImpls.ftl`) must be
included as resources in the `ignite-calcite` artifact. A plugin can combine
these resources with the base Calcite grammar, Ignite grammar, and its own
grammar extensions to generate a custom parser at build time.
The generated parser can then be registered through the plugin-provided Calcite
`FrameworkConfig`.
h3.Definition of Done
* Plugins can extend the Ignite SQL grammar with additional statements or
clauses.
* A plugin-generated parser retains the standard Calcite and Ignite-specific
SQL syntax.
* The default Ignite SQL parser remains unchanged when no grammar plugin is
installed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)