Skip to content

Add stats rewrite session API#7930

Merged
gatesn merged 1 commit into
developfrom
ngates/stats-7707/stats-rewrite-session-api
May 15, 2026
Merged

Add stats rewrite session API#7930
gatesn merged 1 commit into
developfrom
ngates/stats-7707/stats-rewrite-session-api

Conversation

@gatesn
Copy link
Copy Markdown
Contributor

@gatesn gatesn commented May 14, 2026

Part of #7707.

Base: develop

Summary

  • Add stats rewrite session state under vortex-array/src/stats/session.rs.
  • Add the first crate-private StatsRewriteRule trait, rewrite context, and session registry.
  • Use Expression::{falsify,satisfy} as the only public entrypoints for stats-backed proof rewrites.
  • Register StatsRewriteSession in the default Vortex session.
  • Document the one-public-entrypoint rule in STYLE.md.

Checks

  • cargo test -p vortex-array stats::rewrite
  • ./scripts/public-api.sh
  • cargo clippy --all-targets --all-features

@gatesn gatesn changed the title Add stats rewrite session API 3: Add stats rewrite session API May 14, 2026
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 14, 2026

Merging this PR will not alter performance

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

✅ 1216 untouched benchmarks


Comparing ngates/stats-7707/stats-rewrite-session-api (2138a72) with develop (b3e1673)

Open in CodSpeed

@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from 586a049 to 80f3d5e Compare May 14, 2026 19:54
@gatesn gatesn force-pushed the ngates/stats-7707/null-count-stat-wrappers branch from 02d39d4 to 4896ec4 Compare May 14, 2026 19:54
@gatesn gatesn added the changelog/chore A trivial change label May 14, 2026 — with ChatGPT Codex Connector
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from 80f3d5e to c3fe2de Compare May 14, 2026 20:27
@gatesn gatesn force-pushed the ngates/stats-7707/null-count-stat-wrappers branch from 4896ec4 to 75ba3eb Compare May 14, 2026 20:27
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from c3fe2de to 4c86e67 Compare May 14, 2026 21:00
@gatesn gatesn force-pushed the ngates/stats-7707/null-count-stat-wrappers branch from 75ba3eb to 2839387 Compare May 14, 2026 21:00
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from 4c86e67 to ab2cdbc Compare May 14, 2026 21:05
@gatesn gatesn force-pushed the ngates/stats-7707/null-count-stat-wrappers branch from 2839387 to 85a04e0 Compare May 14, 2026 21:05
gatesn added a commit that referenced this pull request May 14, 2026
Part of #7707.

Base: #7931
Next: #7930

## Summary

- Add a `NullCount` aggregate wrapper and register it in the aggregate
function session.
- Bridge `Stat::NullCount` through the `Stat` aggregate-function mapping
introduced by #7931.
- Add stats expression constructors used by the current pruning/stat
expression path.

## Checks

- `cargo test -p vortex-array null_count`
- `cargo test -p vortex-array stat_expr`
- `./scripts/public-api.sh`
- `cargo clippy --all-targets --all-features`

Signed-off-by: Nicholas Gates <nick@nickgates.com>
Base automatically changed from ngates/stats-7707/null-count-stat-wrappers to ngates/aggregatefn-stat-bridge-cleanup May 14, 2026 21:11
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from ab2cdbc to 1974b37 Compare May 14, 2026 21:16
Base automatically changed from ngates/aggregatefn-stat-bridge-cleanup to develop May 14, 2026 21:26
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch 2 times, most recently from 54f5e31 to cc8610a Compare May 14, 2026 21:29
@gatesn gatesn changed the base branch from develop to ngates/stats-7707/null-count-stat-wrappers-v2 May 14, 2026 21:30
Base automatically changed from ngates/stats-7707/null-count-stat-wrappers-v2 to develop May 14, 2026 21:39
gatesn added a commit that referenced this pull request May 14, 2026
Part of #7707.

Replacement for #7929 after the accidental merge was reverted before
#7931 landed.

Base: `develop`
Next: #7930

## Summary

- Add a `NullCount` aggregate wrapper and register it in the aggregate
function session.
- Bridge `Stat::NullCount` through the `Stat` aggregate-function mapping
introduced by #7931.
- Add stats expression constructors used by the current pruning/stat
expression path.

## Checks

- `cargo test -p vortex-array null_count`
- `cargo test -p vortex-array stat_expr`
- `./scripts/public-api.sh`
- `cargo clippy --all-targets --all-features`

Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
@gatesn gatesn force-pushed the ngates/stats-7707/stats-rewrite-session-api branch from cc8610a to 2138a72 Compare May 14, 2026 21:47
@gatesn gatesn changed the title 3: Add stats rewrite session API Add stats rewrite session API May 14, 2026
@gatesn gatesn marked this pull request as ready for review May 14, 2026 23:00
@gatesn gatesn enabled auto-merge (squash) May 14, 2026 23:00
@gatesn gatesn requested a review from robert3005 May 14, 2026 23:00
@gatesn gatesn merged commit e3cc14f into develop May 15, 2026
64 checks passed
@gatesn gatesn deleted the ngates/stats-7707/stats-rewrite-session-api branch May 15, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/chore A trivial change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants