Skip to content

fix: preserve codes nullability when slicing dict with a constant code - #10772

Merged
robert3005 merged 2 commits into
developfrom
claude/nifty-pasteur-rhotkn
Oct 26, 2026
Merged

robert3005 merged 2 commits into
developfrom
claude/nifty-pasteur-rhotkn

Conversation

@robert3005

Copy link
Copy Markdown
Contributor

Slicing or filtering a DictArray whose codes are a constant valid code rebuilt the dict with non-nullable 0u8 codes. With nullable codes over non-nullable values this narrowed the dtype (e.g. bool? -> bool), which the optimizer rejects as a reduce-rule dtype mismatch.

Fixes #10764

@robert3005 robert3005 added the changelog/fix A bug fix label Oct 25, 2026
@codspeed

codspeed Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Merging this PR will degrade performance by 25.89%

2 warnings, 1 note

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ 63 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

ℹ️ 40 benchmarks have no flamegraph

The flamegraph wasn't generated: the symbols of the profiling trace could not be resolved, because no information about the language frames was collected.

See affected benchmarks

⚡ 2 improved benchmarks
❌ 6 regressed benchmarks
✅ 2400 untouched benchmarks
⏩ 12 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
❌ Walltime filter_neon[8] 915 ns 1,957 ns -53.24%
❌ Walltime threshold_neon[8] 1.4 µs 2.8 µs -51.6%
❌ Walltime filter_neon[64] 1.8 µs 3.2 µs -45.42%
❌ Walltime threshold_neon[64] 2.6 µs 4 µs -33.52%
❌ Walltime threshold_neon[80] 3.6 µs 5 µs -28.8%
❌ Walltime filter_neon[80] 2.5 µs 3.3 µs -23.86%
⚡ CPU Simulation take_map[(0.01, 0.05)] 1,570.7 ns 871.4 ns +80.24%
⚡ Walltime bitpack_blocked_compress_avx2 7.6 µs 6.7 µs +13.41%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing claude/nifty-pasteur-rhotkn (c7ffd98) with develop (1dba73c)

Open in CodSpeed

Footnotes

  1. 12 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. ↩

Slicing or filtering a DictArray whose codes are a constant valid code
rebuilt the dict with non-nullable 0u8 codes. With nullable codes over
non-nullable values this narrowed the dtype (e.g. bool? -> bool), which
the optimizer rejects as a reduce-rule dtype mismatch.

Fixes #10764

Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8VutD8Hd9f5iczZa7NxWL
Signed-off-by: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01P8VutD8Hd9f5iczZa7NxWL

@mhk197 mhk197 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

lgtm

@robert3005
robert3005 force-pushed the claude/nifty-pasteur-rhotkn branch from 33c8938 to c7ffd98 Compare October 26, 2026 11:00
@robert3005
robert3005 enabled auto-merge (squash) October 26, 2026 11:00
@robert3005
robert3005 merged commit 747928a into develop Oct 26, 2026
80 checks passed
@robert3005
robert3005 deleted the claude/nifty-pasteur-rhotkn branch October 26, 2026 11:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changelog/fix A bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fuzzing Crash: VortexError in array_ops

3 participants