asterixdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From abdullah alamoudi <>
Subject Grammar Extension
Date Sat, 16 Jul 2016 12:10:19 GMT
Hi everyone,
Recently, we are focusing more and more on building extension points into
the core of asterixdb. The goal of this is to enable rapid research
development and stable and robust core. We identified a few points of
extension that needs to be supported as follows:

1. CC/NC User Defined Components
2. Metadata extension's datasets and extensible metadata entities
3. Compiler Rules A mechanism to plug in a set of compiler rewrite rules
that can be run during plan generation.

4. Runtime Operators, Connectors, and Partitioners

5. Job Modification: An extension should be given a chance to inspect and
modify Hyracks jobs before they are executed.

6. Active Jobs {Start, Stop, Communication}

7. Language Parser's* Extensible Grammar*.

8. Query Translator must allow supporting additional types of statements.

The trickiest of those is IMO the extensible grammar and in here, I am
proposing a mechanism in which an extension can build on core asterixdb's
The mechanism will simply be a pre-processor for jj files before generating
java classes using javacc. Here is how it works.

1. Terminals in the original base jj file are final 2. Non-terminals can be
overridden by the extension file 3. The extension file can add more
terminals 4. A pre-processor will generate the final jj file before using
javacc to generate the java classes.

Comments? Thoughts? Disagreements? Suggestions? (Likes?)

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message