EQL Internals
Refer to the javadoc of package ua.com.fielden.platform.eql
in platform-dao
.
EQL expression (fluent interface)
|
| tokenisation
|
v
Abstract Model (tokens)
|
| stage 0
|
v
Abstract Query 1 (AST level 1)
|
| stage 1
|
v
Abstract Query 2 (AST level 2)
|
| stage 2
|
v
Abstract Query 3 (AST level 3)
|
| stage 3
|
v
Transformation result (SQL + information to interpret results)
A fluent interface (EQL progressive interfaces) is currently used to write EQL expressions. The tokenisation stage has the disadvantage of losing some context-sensitive information in the process (TODO need examples). Also, the logic encoding the rules of the language (i.e., its grammar) needs to be synchronised between "tokenisation" and "stage 0" processes. This could be improved by merging these processes into a single one, which would be performed by the implementation of the fluent interface.
An entity query with a single yield which is either unaliased or targets property id
is equivalent
to an entity query that selects all entities of that type whose id
is contained[^1] in the yielded
value.
[^1]: if the yielded value is a scalar, equality is used; in case of a set, membership test is used.
Per aspera ad astra
- Web UI Design and Web API
- Safe Communication and User Authentication
- Gitworkflow
- JavaScript: Testing with Maven
- Java Application Profiling
- TG Development Guidelines
- Full Text Search
- Deployment recipes
- JRebel Installation and Integration
- Compile-time mechanisms