feat(tesseract): Support separate pre-aggregations for different multi-fact subqueries#10718
Conversation
…i-stage subqueries
…i-fact subqueries
|
Claude finished @waralexrom's task in 2m 37s —— View job Code Review: Separate Pre-aggregations for Multi-fact Subqueries
SummaryThis PR refactors how multiplied (multi-fact) measures are planned and optimized in Tesseract. The key architectural change is unifying the CTE management for both multi-stage members and multiplied measures into a single What changed:
The approach is sound and the refactoring materially simplifies the codebase (~200 net lines removed despite adding tests and new functionality). Code QualityPositive:
Issues:
SecurityNo security concerns. This is internal query planning logic with no user-facing input parsing, no SQL injection vectors (queries are built via typed builders), and no auth/authz changes. Performance
TestingStrengths:
Concerns:
Minor Notes
VerdictThis is a well-designed architectural refactoring that simplifies the codebase while enabling more granular pre-aggregation matching. The main actionable feedback is around code duplication between the two rewrite methods and the missing test coverage for the pre-aggregation optimization of multiplied subqueries. The rest is solid. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## tesseract-multi-stage-pre-aggregations-full-support #10718 +/- ##
=======================================================================================
- Coverage 78.79% 78.76% -0.03%
=======================================================================================
Files 465 465
Lines 91999 91925 -74
Branches 3374 3353 -21
=======================================================================================
- Hits 72488 72408 -80
- Misses 19020 19028 +8
+ Partials 491 489 -2
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
a884e18 to
64242fe
Compare
Check List