apache / apache/datafusion

Add support for targets with 32-bit ptrs

Open
#273 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Rust
Stars
9.3k
Forks
2.4k
Avg merge
3d 7h
Merged PRs (30d)
344

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
When [testing Ballista on a Raspberry Pi cluster](https://github.com/apache/arrow-datafusion/issues/243) using a 32-bit OS, it was noted that whilst we don't _officially_ support 32-bit builds at present, we only actually have one specific test case that fails for that arch. To ensure our continued robustness across architectures, I'd like to add some minimal CI support to ensure that this doesn't slip.

**Describe the solution you'd like**
- Add a new CI check that runs the tests using a 32-bit Linux build
- Fix any existing arch-related assumptions in the codebase (e.g. hardcoding ptr sizes at 8 bytes instead of `std::mem::size_of::()`)

**Describe alternatives you've considered**
- Explicitly disallowing compilation for 32-bit targets: this might impact on future possibilities like targeting wasm32 for Rust-in-browser use cases (less important for DataFusion than Arrow perhaps, but I can personally envisage at least one use case for this)
- Doing nothing: this feels lazy 🤷‍♂️

**Additional context**
This work will depend on apache/arrow-rs#262 (equivalent work for Arrow proper).

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing CI configuration and the test that fails on 32-bit targets, then check the dependency on apache/arrow-rs#262. Identify hardcoded pointer-size assumptions such as 8-byte values, add a 32-bit Linux test job, and confirm the test suite passes for that target.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
build-system, ci-cd
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.