Skip to content

Conversation

@gatesn
Copy link
Contributor

@gatesn gatesn commented Dec 15, 2025

No description provided.

Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
@gatesn gatesn requested a review from joseph-isaacs December 15, 2025 16:17
Signed-off-by: Nicholas Gates <nick@nickgates.com>
@gatesn gatesn added changelog/chore A trivial change changelog/feature A new feature and removed changelog/chore A trivial change labels Dec 15, 2025
@codecov
Copy link

codecov bot commented Dec 15, 2025

Codecov Report

❌ Patch coverage is 24.68085% with 177 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.27%. Comparing base (a173e90) to head (4737554).
⚠️ Report is 2 commits behind head on develop.

Files with missing lines Patch % Lines
vortex-array/src/kernel.rs 0.00% 46 Missing ⚠️
encodings/sequence/src/array.rs 0.00% 28 Missing ⚠️
...decimal-byte-parts/src/decimal_byte_parts/rules.rs 0.00% 18 Missing ⚠️
encodings/fastlanes/src/for/vtable/rules.rs 0.00% 16 Missing ⚠️
vortex-array/src/matchers.rs 37.50% 15 Missing ⚠️
vortex-array/src/arrays/filter/vtable.rs 0.00% 13 Missing ⚠️
vortex-array/src/vtable/dyn_.rs 61.29% 12 Missing ⚠️
vortex-array/src/arrays/scalar_fn/vtable/mod.rs 0.00% 10 Missing ⚠️
...s/decimal-byte-parts/src/decimal_byte_parts/mod.rs 0.00% 7 Missing ⚠️
encodings/fastlanes/src/for/vtable/mod.rs 0.00% 7 Missing ⚠️
... and 1 more

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Signed-off-by: Nicholas Gates <nick@nickgates.com>
Comment on lines +29 to +45
fn reduce_parent(
&self,
child: &DecimalBytePartsArray,
parent: &FilterArray,
_child_idx: usize,
) -> VortexResult<Option<ArrayRef>> {
// TODO(ngates): we should benchmark whether to push-down filters with "lower parts".
// For now, we only push down if there are no lower parts.
if !child._lower_parts.is_empty() {
return Ok(None);
}

let new_msp =
FilterArray::new(child.msp.clone(), parent.filter_mask().clone()).into_array();
let new_child =
DecimalBytePartsArray::try_new(new_msp, *child.decimal_dtype())?.into_array();
Ok(Some(new_child))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do you think we need this vs just decompressing?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we implemented DBP as a scalar function, it would happen via unary filter pushdown. It's kind of important

@codspeed-hq
Copy link

codspeed-hq bot commented Dec 15, 2025

CodSpeed Performance Report

Merging #5736 will degrade performances by 19.97%

Comparing ngates/execute-parent (4737554) with develop (a9b9d2a)

Summary

⚡ 1 improvement
❌ 27 regressions
✅ 1228 untouched
⏩ 621 skipped1

⚠️ Please fix the performance issues or acknowledge them on CodSpeed.

Benchmarks breakdown

Benchmark BASE HEAD Change
bench_compare_primitive[(100000, 128)] 453.7 µs 566.4 µs -19.9%
bench_compare_primitive[(100000, 2)] 451.7 µs 564.3 µs -19.96%
bench_compare_primitive[(100000, 32)] 451.9 µs 564.6 µs -19.95%
bench_compare_primitive[(100000, 4)] 451.4 µs 564.1 µs -19.97%
bench_compare_primitive[(100000, 2048)] 526.1 µs 638.8 µs -17.65%
bench_compare_primitive[(100000, 512)] 506.8 µs 619.5 µs -18.2%
bench_compare_primitive[(100000, 8)] 452 µs 564.7 µs -19.95%
bench_compare_varbin[(100000, 128)] 465.8 µs 579 µs -19.55%
bench_compare_varbin[(100000, 2)] 457.3 µs 570.4 µs -19.83%
bench_compare_varbin[(100000, 2048)] 624.1 µs 737.2 µs -15.34%
bench_compare_varbin[(100000, 32)] 459.9 µs 573 µs -19.74%
bench_compare_varbin[(100000, 4)] 457.9 µs 571 µs -19.8%
bench_compare_varbin[(100000, 512)] 535.4 µs 648.5 µs -17.44%
bench_compare_varbinview[(100000, 128)] 464.8 µs 577.9 µs -19.58%
bench_compare_varbinview[(100000, 32)] 459.6 µs 572.7 µs -19.75%
bench_compare_varbin[(100000, 8)] 457.9 µs 571 µs -19.8%
bench_compare_varbinview[(100000, 4)] 457.5 µs 570.5 µs -19.82%
bench_compare_varbinview[(100000, 512)] 534.8 µs 647.9 µs -17.46%
bench_compare_varbinview[(100000, 2048)] 623.9 µs 737 µs -15.34%
bench_compare_varbinview[(100000, 8)] 458.2 µs 571.3 µs -19.79%
... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Footnotes

  1. 621 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@gatesn gatesn merged commit c93f06e into develop Dec 15, 2025
51 of 52 checks passed
@gatesn gatesn deleted the ngates/execute-parent branch December 15, 2025 17:50
paultiq pushed a commit to paultiq/vortex that referenced this pull request Dec 17, 2025
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/feature A new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants