Update the newly added note files and remove references to ignored files

This commit is contained in:
Hassan Abedi 2026-04-07 15:32:39 +02:00
parent b2aec58a85
commit 1599c82614
3 changed files with 30 additions and 28 deletions

View File

@ -47,15 +47,15 @@ A clean front end gives the engine:
## The pipeline in the companion repo
Relevant modules:
Relevant implementation areas:
- `tmp/how-query-engines-work/sql/src/main/kotlin/SqlTokenizer.kt`
- `tmp/how-query-engines-work/sql/src/main/kotlin/Tokens.kt`
- `tmp/how-query-engines-work/sql/src/main/kotlin/SqlParser.kt`
- `tmp/how-query-engines-work/sql/src/main/kotlin/Expressions.kt`
- `tmp/how-query-engines-work/sql/src/main/kotlin/SqlPlanner.kt`
- `tmp/how-query-engines-work/logical-plan/src/main/kotlin/LogicalPlan.kt`
- `tmp/how-query-engines-work/logical-plan/src/main/kotlin/Expressions.kt`
- SQL tokenization
- SQL tokens and keywords
- SQL parsing
- SQL AST expressions
- SQL-to-logical planning
- logical plan interfaces
- logical expressions
Conceptually:
@ -368,4 +368,5 @@ It is what allows:
## Changelog
* **Apr 7, 2026** -- Removed references to ignored local `tmp/` paths.
* **Apr 7, 2026** -- Added a dedicated note on SQL tokenization, parsing, AST structure, and logical planning.

View File

@ -31,16 +31,16 @@ That makes the logical-to-physical boundary easy to study.
## The physical planning pipeline
Relevant modules:
Relevant implementation areas:
- `tmp/how-query-engines-work/query-planner/src/main/kotlin/QueryPlanner.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/PhysicalPlan.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/ScanExec.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/SelectionExec.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/ProjectionExec.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/HashAggregateExec.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/HashJoinExec.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/LimitExec.kt`
- query planning from logical to physical operators
- the physical-plan interface
- scan execution
- selection execution
- projection execution
- hash aggregation
- hash join
- limit execution
Conceptually:
@ -375,4 +375,5 @@ So this note should be read as a physical-plan primer, not as the full space of
## Changelog
* **Apr 7, 2026** -- Removed references to ignored local `tmp/` paths.
* **Apr 7, 2026** -- Added a dedicated note on physical planning, executable operators, and batch-oriented runtime behavior.

View File

@ -49,18 +49,17 @@ So expressions are not side details. They are a large part of the engine's real
## The two-layer model
Relevant modules:
Relevant implementation areas:
- `tmp/how-query-engines-work/logical-plan/src/main/kotlin/LogicalExpr.kt`
- `tmp/how-query-engines-work/logical-plan/src/main/kotlin/Expressions.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/expressions/Expressions.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/expressions/BinaryExpression.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/expressions/CastExpression.kt`
- `tmp/how-query-engines-work/physical-plan/src/main/kotlin/expressions/AggregateExpression.kt`
- `tmp/how-query-engines-work/datatypes/src/main/kotlin/Schema.kt`
- `tmp/how-query-engines-work/datatypes/src/main/kotlin/ColumnVector.kt`
- `tmp/how-query-engines-work/datatypes/src/main/kotlin/RecordBatch.kt`
- `tmp/how-query-engines-work/datatypes/src/main/kotlin/ArrowTypes.kt`
- logical-expression interfaces and helpers
- physical-expression interfaces
- binary-expression evaluation
- cast evaluation
- aggregate-expression interfaces
- schema and field definitions
- column-vector abstractions
- record batches
- Arrow-based type definitions
The key distinction is:
@ -381,4 +380,5 @@ That is why "choosing a type system" appears so early in the book. It affects mu
## Changelog
* **Apr 7, 2026** -- Removed references to ignored local `tmp/` paths.
* **Apr 7, 2026** -- Added a dedicated note on expressions, Arrow-based types, coercion, aggregates, and null handling.