Skip to content

refactor(engine): extract VariableLayout and rename engine Query to QueryPlan (#643) - #649

Merged
remiceres merged 2 commits into
feature/corese-nextfrom
refactor/643-query-plan-srp
Oct 26, 2026
Merged

remiceres merged 2 commits into
feature/corese-nextfrom
refactor/643-query-plan-srp

Conversation

@remiceres

Copy link
Copy Markdown
Contributor

Resolves #643 (Part 4).

Summary of Changes

  1. **Extract **:

    • Extracted layout tracking, node collections (patternNodes, patternSelectNodes, queryNodes, querySelectNodes, bindingNodes, constructNodes, argList), and index allocation (allocateNodeIndex, allocateEdgeIndex) out of Query.java into a dedicated, cohesive VariableLayout.java component.
    • Preserves filtering semantics for non-variable and blank nodes.
  2. Rename Engine Query to QueryPlan:

    • Renamed fr.inria.corese.core.next.query.impl.engine.pattern.Query to QueryPlan.
    • Completely eliminates the pervasive naming collision with the public contract fr.inria.corese.core.next.query.api.Query.
    • Updated references across engine evaluation, solution management, diagnostics, query planning, SPARQL compilers, and test suites.
  3. Validation & Quality:

    • Added comprehensive unit tests in VariableLayoutTest.java with 100% coverage of layout operations.
    • SonarLint scan: 0 alerts across all modified and created classes.
    • Architectural boundary enforcement verified via NextModuleBoundaryTest.
    • All repository tests (4,880+ test cases) pass cleanly.

@github-actions

Copy link
Copy Markdown
Overall Project 58.14% -0.01% 🍏
Files changed 93.99% 🍏

File Coverage
CompiledQueryPlan.java 100% 🍏
DescribeQueryCompiler.java 100% 🍏
PreparedQueryPlan.java 100% 🍏
TopKSelector.java 100% 🍏
VariableLayout.java 98.63% -1.37% 🍏
WhereCompiler.java 97.63% 🍏
ExecutionDiagnostics.java 97.23% 🍏
ConstructQueryCompiler.java 96.53% 🍏
DirectGroupAggregation.java 96.17% 🍏
SparqlQueryExecutor.java 96.12% 🍏
StreamingTupleQueryResult.java 95.65% -1.74% ❌
SelectCursor.java 95.47% -0.29% ❌
SolutionModifierCompiler.java 91.74% 🍏
EvalJoin.java 90.4% 🍏
CardinalityPatternOrdering.java 89.05% 🍏
StorageManagerProducer.java 88.09% -0.63% ❌
CoreseAstQueryBuilder.java 87.09% 🍏
DiagnosticProducer.java 85.86% 🍏
EvalGraph.java 82.4% 🍏
QueryPlan.java 79.24% -0.26% 🍏
QueryPlanner.java 78.21% 🍏
SolutionMaterializer.java 77.78% 🍏
Mappings.java 75.06% 🍏
EvalOptional.java 71.47% 🍏
Eval.java 67.83% 🍏
Mapping.java 66.34% 🍏
ProcessVisitor.java 54.95% 🍏
Memory.java 53.26% 🍏
FilterOptimizer.java 35.7% 🍏
ConnectedPatternOrdering.java 25.17% 🍏
QueryStatistics.java 20% 🍏
Producer.java 16.67% 🍏
Pointerable.java 15.79% -7.89% ❌
ProducerDefault.java 13.1% 🍏
StorageBindingEnvironment.java 10.25% 🍏
HeuristicPatternOrdering.java 5.45% 🍏
EnvironmentImpl.java 2.52% 🍏
Environment.java 0% 🍏

@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown

Test Results

  423 files    423 suites   25s ⏱️
3 397 tests 3 397 ✅ 0 💤 0 ❌
3 431 runs  3 431 ✅ 0 💤 0 ❌

Results for commit 7105808.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown
Overall Project 58.14% -0.01% 🍏
Files changed 92.23% 🍏

File Coverage
VariableLayout.java 100% 🍏
CompiledQueryPlan.java 100% 🍏
DescribeQueryCompiler.java 100% 🍏
PreparedQueryPlan.java 100% 🍏
TopKSelector.java 100% 🍏
WhereCompiler.java 97.63% 🍏
ExecutionDiagnostics.java 97.23% 🍏
ConstructQueryCompiler.java 96.53% 🍏
DirectGroupAggregation.java 96.17% 🍏
SparqlQueryExecutor.java 96.12% 🍏
StreamingTupleQueryResult.java 95.65% -1.74% ❌
SelectCursor.java 95.47% -0.29% ❌
SolutionModifierCompiler.java 91.74% 🍏
EvalJoin.java 90.4% 🍏
CardinalityPatternOrdering.java 89.05% 🍏
StorageManagerProducer.java 88.09% -0.63% ❌
CoreseAstQueryBuilder.java 87.09% 🍏
DiagnosticProducer.java 85.86% 🍏
EvalGraph.java 82.4% 🍏
QueryPlan.java 78.51% -0.82% 🍏
QueryPlanner.java 78.21% 🍏
SolutionMaterializer.java 77.78% 🍏
Mappings.java 75.06% 🍏
EvalOptional.java 71.47% 🍏
Eval.java 67.83% 🍏
Mapping.java 66.34% 🍏
ProcessVisitor.java 54.95% 🍏
Memory.java 53.26% 🍏
FilterOptimizer.java 35.7% 🍏
ConnectedPatternOrdering.java 25.17% 🍏
QueryStatistics.java 20% 🍏
Producer.java 16.67% 🍏
Pointerable.java 15.79% -7.89% ❌
ProducerDefault.java 13.1% 🍏
StorageBindingEnvironment.java 10.25% 🍏
HeuristicPatternOrdering.java 5.45% 🍏
EnvironmentImpl.java 2.52% 🍏
Environment.java 0% 🍏

@remiceres
remiceres merged commit c29a59d into feature/corese-next Oct 26, 2026
2 checks passed
@remiceres
remiceres deleted the refactor/643-query-plan-srp branch October 26, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant