BE-592: HashQL: Remove old eval graph path and core value types#8841
Conversation
chore: add new dependency chore: format feat: error module feat: introduce hashql_eval interner chore: checkpoint feat: checkpoint feat: checkpoint chore: remove old value module feat: checkpoint feat: checkpoint feat: checkpoint feat: checkpoint feat: checkpoint chore: checkpoint feat: move entity query into its own modul fix: query request feat: checkpoint (it compiles!) feat: checkpoint feat: checkpoint feat: checkpoint fix: issue around cached thunking feat: covariance for opaque inners fix: cfgattr serde chore: remove graph module fix: merge fuckup
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
PR SummaryHigh Risk Overview
Dependency wiring is updated: Reviewed by Cursor Bugbot for commit d15129c. Bugbot is set up for automated code reviews on this repo. Configure here. |
There was a problem hiding this comment.
Pull request overview
Removes the legacy HashQL graph-read evaluation/compiler path (and its UI/compiletest suite) while simplifying hashql-core’s value surface area down to primitive re-exports. This aligns evaluation/testing around the newer MIR interpreter path and eliminates now-dead value/container types.
Changes:
- Removed
hashql-eval’s oldgraphmodule (graph read path/filter compiler/sink/convert/error) and the associatedeval/graph/read/entityUI tests. - Removed composite value types from
hashql-core’svaluemodule, keeping only primitive re-exports. - Updated compiletest suite registration/dependencies and workspace dependency versions to reflect the removed graph feature path.
Reviewed changes
Copilot reviewed 102 out of 102 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| libs/@local/hashql/hir/src/map.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/hir/src/lower/normalization.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/hir/src/context.rs | Adds #[inline] to Default impls. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/.spec.toml | Removes old eval graph-read entity suite spec. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-and.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-and.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-or.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/arithmetic-comparisons-or.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/boolean-literal.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/boolean-literal.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/call-identity.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/call-identity.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/complex-object-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/complex-object-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/computed-path-indexing-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/computed-path-indexing-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/constructor-call-none.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/constructor-call-none.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/equality-comparison.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/equality-comparison.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-struct.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-struct.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-tuple.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-access-tuple.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-key.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-key.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-value.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-dict-value.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-list.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-list.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct-entry.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct-entry.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-struct.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-tuple.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/field-in-tuple.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter-expr.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter-expr.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/if-filter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-field-access.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-field-access.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-index-access.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-index-access.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-parameter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/input-parameter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-field-access-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-field-access-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-index-access-error.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-index-access-error.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-vertex-query.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/invalid-vertex-query.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-expression.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-expression.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-propagation.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/let-propagation.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-and-or.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-and-or.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-or-and.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/logical-or-and.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-binary-operation.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-binary-operation.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-let-bindings.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/nested-let-bindings.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/scalar-property-filter.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/scalar-property-filter.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-level-variable.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-level-variable.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-type-assertion.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/top-type-assertion.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/type-assertion-in-comparison.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/type-assertion-in-comparison.stdout | Removes old UI test output snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-closure.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-closure.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-nested-graph-read.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-nested-graph-read.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-type-constructor.jsonc | Removes old UI test input for graph-read filter compilation. |
| libs/@local/hashql/eval/tests/ui/graph/read/entity/unsupported-type-constructor.stderr | Removes old UI test error snapshot. |
| libs/@local/hashql/eval/src/lib.rs | Removes graph module export and an unneeded feature gate. |
| libs/@local/hashql/eval/src/graph/mod.rs | Removes legacy graph module root. |
| libs/@local/hashql/eval/src/graph/error.rs | Removes legacy graph diagnostic category wrapper. |
| libs/@local/hashql/eval/src/graph/read/mod.rs | Removes legacy graph-read compiler entrypoint/types. |
| libs/@local/hashql/eval/src/graph/read/convert.rs | Removes legacy value→parameter conversion logic. |
| libs/@local/hashql/eval/src/graph/read/error.rs | Removes legacy graph-read compiler diagnostics definitions. |
| libs/@local/hashql/eval/src/graph/read/filter.rs | Removes legacy filter compilation logic. |
| libs/@local/hashql/eval/src/graph/read/filter_expr.rs | Removes legacy filter-expression lowering logic. |
| libs/@local/hashql/eval/src/graph/read/path.rs | Removes legacy query-path traversal/conversion logic. |
| libs/@local/hashql/eval/src/graph/read/sink.rs | Removes legacy filter sink builder. |
| libs/@local/hashql/eval/Cargo.toml | Drops the old graph feature wiring and updates deps to workspace-managed versions. |
| libs/@local/hashql/core/src/value/mod.rs | Removes composite Value hierarchy exports, keeping only primitives. |
| libs/@local/hashql/core/src/value/dict.rs | Removes legacy persistent dict value type. |
| libs/@local/hashql/core/src/value/list.rs | Removes legacy persistent list value type. |
| libs/@local/hashql/core/src/value/opaque.rs | Removes legacy opaque/nominal value type. |
| libs/@local/hashql/core/src/value/struct.rs | Removes legacy struct value type and access logic. |
| libs/@local/hashql/core/src/value/tuple.rs | Removes legacy tuple value type and access logic. |
| libs/@local/hashql/compiletest/src/suite/mod.rs | Removes old eval graph-read suite registration. |
| libs/@local/hashql/compiletest/src/suite/eval_graph_read_entity.rs | Removes the compiletest suite that exercised legacy graph-read compilation. |
| libs/@local/hashql/compiletest/Cargo.toml | Removes hashql-eval graph feature usage. |
| libs/@local/hashql/ast/src/lowering/sanitizer.rs | Adds #[inline] to Default impl. |
| libs/@local/hashql/ast/src/lowering/node_renumberer.rs | Adds #[inline] to Default impl. |
| libs/@local/graph/api/Cargo.toml | Drops hashql-eval graph feature enablement. |
| Cargo.toml | Adds workspace dependency versions for futures-lite, sqruff-lib, and sqruff-lib-core. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## bm/be-590-hgraph-entity-query-request-refactor #8841 +/- ##
===================================================================================
+ Coverage 59.68% 73.40% +13.72%
===================================================================================
Files 1349 363 -986
Lines 130846 54296 -76550
Branches 5886 1360 -4526
===================================================================================
- Hits 78093 39858 -38235
+ Misses 51840 13949 -37891
+ Partials 913 489 -424 Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Merging this PR will degrade performance by 18.06%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | linear |
6.7 µs | 7.7 µs | -12.58% |
| ❌ | diamond |
10.9 µs | 12.3 µs | -11.34% |
| ❌ | complex |
16.2 µs | 18.1 µs | -10.02% |
| ⚡ | bit_matrix/dense/iter_row[64] |
170 ns | 140.8 ns | +20.71% |
| ⚡ | bit_matrix/dense/iter_row[200] |
215 ns | 185.8 ns | +15.7% |
| 👁 | runtime |
29.7 ns | 58.9 ns | -49.53% |
| 👁 | constant |
29.7 ns | 58.9 ns | -49.53% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing bm/be-592-hashql-remove-old-eval-graph-path-and-core-value-types (d15129c) with main (dfe8234)1
Footnotes
044a4ff to
c1e8a90
Compare
39ed22e to
90fb414
Compare
1cadbdc to
37f6a80
Compare
710b403 to
287c5b6
Compare
287c5b6 to
673f589
Compare
37f6a80 to
ffd1eee
Compare
c4c66ca to
b71a649
Compare
d9ee377 to
6eb20a0
Compare
b71a649 to
b4de21c
Compare
b4de21c to
d15129c
Compare
6eb20a0 to
36c00cc
Compare
| bytes = { workspace = true } | ||
| derive_more = { workspace = true, features = ["display"] } | ||
| futures-lite = { workspace = true } | ||
| postgres-protocol = { workspace = true } | ||
| postgres-types = { workspace = true, features = ["uuid-1"] } |

🌟 What is the purpose of this PR?
Remove the old
eval::graphmodule (read path, filter expressions, convert, sink) and its compiletest suite (eval_graph_read_entity). Add the newmir_interpretcompiletest suite. Delete the now-unused composite value types fromhashql-core(Dict,List,Struct,Tuple,Opaque,Value,FieldAccessError), keeping only primitive re-exports.Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR: