test(querier): rfc 0022 green pt3 — pruning + promoted-set drift (RFC0022.5/.7) - #347
Conversation
RFC0022.5/.7 go green, completing all seven §5 scenarios at the test
level. .5 pins that the §3.3 two-arm compile prunes: in non-matching
row groups the typed arm is excluded by min/max statistics and the
P-IS-NULL fallback guard by a zero null-count (the steady-state fast
path). .7 spans one scan over files written under configured sets {},
{a}, {a,b} — the union scans without error and both keys answer
correctly from every file. RFC status stays red until the §3.2
storage.promoted_attributes config plumbing lands (the operator-facing
knob is still rejected by the strict RFC 0020 schema).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 53 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughTwo previously ignored test stubs ( ChangesRFC0022 attribute promotion tests
Estimated code review effort: 2 (Simple) | ~15 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Pull request overview
Implements the remaining RFC 0022 querier acceptance tests for promoted attribute columns, specifically covering pruning behavior and schema/predicate correctness under promoted-set drift across deploys.
Changes:
- Implements RFC0022.5 test to assert promoted-equality predicates prune non-matching row groups and report RFC 0016 scan/prune counters.
- Implements RFC0022.7 test to validate union scanning across files written with promoted sets
{},{a},{a,b}, including correct==/!=behavior and typed-arm-only ordering under drift.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
RFC 0022 green pt3 — the pruning slice. Discharges the last two §5 scenarios, RFC0022.5 (promoted predicates prune) and RFC0022.7 (promoted-set drift), completing all seven at the test level.
What
rfc0007_1shape (counters, not wall-clock): three files in distinct hours, the needle value of a configured promoted key concentrated in one. A selective equality query answers withrow_groups_pruned >= 2andscanned < totalvia the RFC 0016 counters. This also empirically pins that DataFusion's pruning predicate handles the §3.3 two-arm compile: in non-matching row groups the typed arm is excluded by min/max statistics and theP IS NULL AND <JSON LIKE>fallback arm by a zero null-count — the steady-state fast path §3.3 claims. B1/B2 are the bench gates and are untouched by construction (this test asserts counters only; indicative bench dispatch per the standing policy remains available on demand).{},{a},{a,b}(a = k8s.namespace.nameresource,b = http.routelog, each on top of the implicitservice.name). One scan unions the schemas without error (the §3.9 case, backed by the feat(querier): rfc 0022 green pt2 — promoted predicate compile (RFC0022.3/.4/.6) #346 union fix);==/!=on both keys answer correctly from every file (typed arm where the column exists and is non-NULL, JSON arm otherwise, with row identity pinned per file), and ordering stays typed-arm-only under drift.Test-only: one file changed, the two
#[ignore]d red stubs implemented and un-ignored. No production code touched.RFC status
Deliberately still
red: §5 is now 7/7 in CI, but §3.2'sstorage.promoted_attributesconfig key does not parse yet (ourios-server's strict RFC 0020 schema rejects it, and the ingester writes with the default set) — the operator-facing surface the RFC promises isn't deliverable until that plumbing lands. The follow-up slice adds the config extension + ingester threading and flips the status togreenas the completing PR.Invariants / hazards (CLAUDE.md §3/§4)
QueryResultsurface only.Verification
cargo fmt --all --check,cargo clippy --all-targets --all-features -- -D warnings,cargo test --all-features— all green locally.🤖 Generated with Claude Code
Summary by CodeRabbit