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)

Reply via email to