forked from apache/druid
-
Notifications
You must be signed in to change notification settings - Fork 0
Calcite Notes
Paul Rogers edited this page May 2, 2022
·
8 revisions
-
RexNode
: scalar expression -
RelNode
: Relational algebra node, AKA relational operator. - Adapter:
- A custom schema is created with a
SchemaFactory
. - How is the schema factory registered from code?
- The schema returns an instance of
Table
. If updatable, thenModifiableTable
. - Also, to push operations,
FilterableTable
orProjectableFilterableTable
. - Table gives rise to
TableScan
. - Optimization done via planner rules.
- Each engine implements its own variation of the operators.
- Operators have "conventions" which is the calling convention. The built-in convention is the enumerable convention.
See slide 23 of this presentation:
- SQL is parsed to 'SqlNode'. A converter produces
RelNode
s.
Calcite provides a planner, Planner
and PlannerImpl
which appears more of an example. Druid works around the fact that the validator is not visible, but has lots of useful information. Drill, for example, incorporates the functionality