Skip to content
This repository was archived by the owner on Jan 12, 2026. It is now read-only.

fix: merge upstream changes - #2

Merged
heilhead merged 2142 commits into
masterfrom
fix/merge-upstream-081225
Dec 8, 2025
Merged

fix: merge upstream changes#2
heilhead merged 2142 commits into
masterfrom
fix/merge-upstream-081225

Conversation

@heilhead

@heilhead heilhead commented Dec 8, 2025

Copy link
Copy Markdown

Updates the fork with the upstream changes.

Preview changes: apache/arrow-rs@main...WalletConnect:arrow-rs:fix/merge-upstream-081225

liamzwbao and others added 30 commits September 25, 2025 17:10
…ariant` kernel (apache#8282)

# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Closes apache#8281.

# Rationale for this change

# What changes are included in this PR?

Support the last DataType in `cast_to_variant` kernel

# Are these changes tested?

Yes

# Are there any user-facing changes?

New type supported
# Which issue does this PR close?

- Part of apache#8000
- Prep PR for apache#8340, to make it
easier to review

# Rationale for this change

In apache#8340 I am trying to split the
"IO" from the "where is the metadata in the file" from the "decode
thrift into Rust structures" logic.

I want to make it as easy as possible to review so I split it into
pieces, but you can see apache#8340 for
how it all fits together

# What changes are included in this PR?

This PR cleans up the code that handles parsing the 8 byte parquet file
footer, `FooterTail`, into its own module and construtor

# Are these changes tested?

yes, by CI


# Are there any user-facing changes?

No, this is entirely internal reorganization and I left a `pub use`

---------

Co-authored-by: Ed Seidl <etseidl@users.noreply.github.com>
Co-authored-by: Matthijs Brobbel <m1brobbel@gmail.com>
…mp_nano (apache#8401)

# Which issue does this PR close?

- Closes apache#8331 .

# Rationale for this change

- Add typed_access for `Timestamp(Micro, _)` and `Timestamp(Nano, -)`

# What changes are included in this PR?

- Extract some data gen logic in tests to simplify the test logic
(commit 93090d56717a6804e4862c23a0f85030b9f6406d), but it based on some
old code(before apache#8392), rebase the master in the last commit
- Add typed_access for `Timestamp(Micro, _)` and `Timestamp(Nano, _)`
- Add test for typed_access for `Timestamp(Micro, _)` and
`Timestamp(Nano, _)`

# Are these changes tested?

Covered by existing and added tests

# Are there any user-facing changes?

No
# Which issue does this PR close?
\-

# Rationale for this change
`num` is a meta-crate that bundles functionality of a bunch of `num-*`
crates, similar to how `futures` work:

```text
num v0.4.3
├── num-bigint v0.4.6
│   ├── num-integer v0.1.46
│   │   └── num-traits v0.2.19 (*)
│   └── num-traits v0.2.19 (*)
├── num-complex v0.4.6
│   └── num-traits v0.2.19 (*)
├── num-integer v0.1.46 (*)
├── num-iter v0.1.45
│   ├── num-integer v0.1.46 (*)
│   └── num-traits v0.2.19 (*)
│   [build-dependencies]
│   └── autocfg v1.5.0
├── num-rational v0.4.2
│   ├── num-bigint v0.4.6 (*)
│   ├── num-integer v0.1.46 (*)
│   └── num-traits v0.2.19 (*)
└── num-traits v0.2.19 (*)
```

We don't need all these sub-crates but only a very specific set. So
instead of using the meta-crate, let's use the actual things we need.

# What changes are included in this PR?
Dependency changes.

# Are these changes tested?
It still compiles.

# Are there any user-facing changes?
Faster compilation.
# Which issue does this PR close?

# Rationale for this change

Field data type is useful when we try to downcast field builder.

# What changes are included in this PR?

Add `fields` getter method in `StructBuilder`.

# Are these changes tested?

CI.

# Are there any user-facing changes?

No.
# Which issue does this PR close?

None.

# Rationale for this change

With apache#7836 complete we can update the release schedule.

# What changes are included in this PR?

Update the release schedule table in the README, removing released
versions and adding three new releases.

# Are these changes tested?

No.

# Are there any user-facing changes?

No.
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-arith` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-cast` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-csv` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-flight` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-json` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-ipc` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
…pache#8462)

# Which issue does this PR close?

- Closes apache#8461 .

# Rationale for this change

See the issue 

# What changes are included in this PR?

&mut  -> &

# Are these changes tested?

Covered by existing

# Are there any user-facing changes?

No
# Which issue does this PR close?

- Related to apache#8336

# Rationale for this change

While working on apache#8438, I noticed
that the enum variants of `ShreddingState` actually made the code (a
lot) more complex than if I just referenced the (optional) value and
typed_value columns directly. That made me wonder if `ShreddingState`
would be better as a simple two-field struct.

# What changes are included in this PR?

Change `ShreddingState` to a two-field struct and update the few call
sites that noticed.

While we're at it, improve the docs about how shredding works.

# Are these changes tested?

Existing tests cover what is mostly an internal change

# Are there any user-facing changes?

`ShreddingState` is pub and changed from enum to struct.

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
…lType (apache#8408)

# Which issue does this PR close?

- Closes apache#8370
- Closes apache#8365

# Rationale for this change

Parquet has logical types, which is how other writers signal what
columns contain `Variant` values.

# What changes are included in this PR?

1. Add mapping from Parquet LogicalType to/from Arrow ExtensionType
added in apache#8392
2. Documentation and tests showing reading/writing Parquet files with
the Variant logical annotation

# Are these changes tested?

Yes, new unit tests and doc examples

# Are there any user-facing changes?
You can now read/write Variant columns to `VariantArray`

---------

Co-authored-by: Matthijs Brobbel <m1brobbel@gmail.com>
# Which issue does this PR close?

None.

# Rationale for this change

Initial incremental builds are slower and their size is bigger, so we
should disable them in CI.

# What changes are included in this PR?

Add `CARGO_INCREMENTAL=0` to CI env.

# Are these changes tested?

CI

# Are there any user-facing changes?

No
# Which issue does this PR close?

None.

# Rationale for this change

https://blog.rust-lang.org/2025/09/18/Rust-1.90.0/

# What changes are included in this PR?

- Bump rust version in `rust-toolchain.toml` to 1.90
- Fix new warnings
- Rename `arrow-pyarrow-integration-testing/.cargo/config` to
`config.toml` to fix deprecation warning

# Are these changes tested?

CI

# Are there any user-facing changes?

No
)

# Which issue does this PR close?

# Rationale for this change

While changing the Thrift decoding more fine-grained benchmarking was
desired. With that work mostly done, the benchmarks should revert to
only testing public APIs.

# What changes are included in this PR?

Removes benches of internal APIs. Also makes changes to the "wide" test
to be more representative of the real world. Use of random numbers added
many negative values which require many more bytes to encode.

# Are these changes tested?

None required

# Are there any user-facing changes?

No, only changes to benchmark output.
# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Closes apache#8411.

# Rationale for this change

The presence of relevant statistics when writing geometries and/or
geographies is one of the primary motivations behind the GEOMETRY and/or
GEOGRAPHY in Parquet. We'd like to make it easy for writers to provide
them!

# What changes are included in this PR?

This PR introduces `Interval` and `WraparoundInterval` structs that
handle interval math, and a `GeometryBounder` that iterates over input
using the fantastic `wkb` crate (via `geo-traits`).

# Are these changes tested?

Yes!

# Are there any user-facing changes?

All public structures and functions are documented (although I am not
sure what the final public API will be).

---------

Co-authored-by: Kyle Barron <kylebarron2@gmail.com>
# Which issue does this PR close?

- Builds on apache#7799 by supporting the new struct `GeospatialStatistics`.

# Rationale for this change

* This is part of a draft to support geospatial types (geometry and
geography) in Parquet. This has been

# What changes are included in this PR?

- Structs for supporting geospatial statistics information (bbox and
geospatial types) derived from thrift classes.
- Would appreciate feedback on structure and where certain parts should
go.

# Are these changes tested?

Yes

# Are there any user-facing changes?

If there are user-facing changes then we may require documentation to be
updated before approving the PR.

If there are any breaking changes to public APIs, please call them out.
# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

-  Part of apache#8474

# Rationale for this change

The implications of using `Field::try_extension_type` may not be clear,
so let's document it better. See
apache#8474 for more background

# What changes are included in this PR?

Add some clarifying comments and a doc example

Here is an example of it rendered
<img width="1049" height="988" alt="Screenshot 2025-09-26 at 12 14
31 PM"
src="https://github.com/user-attachments/assets/f7c8fc99-9204-4d9b-83ee-94ddd77abd02"
/>


# Are these changes tested?

Yes new doc example tets


# Are there any user-facing changes?

No API / code changes
# Which issue does this PR close?

- closes apache#5819

# Rationale for this change

This allows writing generic code that accepts `&Field`, `Arc<Field>` or
`&Arc<Field>`, or iterators of these. Same for `Schema`.

# What changes are included in this PR?

`impl AsRef<Field> for Field`
`impl AsRef<Schema> for Schema`

as suggested by `AsRef` own docs

# Are these changes tested?

yes

# Are there any user-facing changes?

it does not break API. Downstream crates cannot implement `AsRef<Field>
for Field`

Downstream crates cannot workaround these either -
apache#5819 (comment)
# Which issue does this PR close?

- Follow on to apache#8408
- Closes apache#7063


# Rationale for this change

I was trying to consolidate the parquet extension type code after
apache#8408, and in so doing I believe
I actually found (and fixed) the root cause of
apache#7063 (I will point it out
inline)

# What changes are included in this PR?

1. Consolidate parquet<-->arrow extension type metadata mapping in one
module
2. Enable tests

# Are these changes tested?

Yes

# Are there any user-facing changes?

When reading parquet that is annotated with Json or UUID logical types,
the resulting Arrow arrays will also have the canonical types attached.
…#7819)

# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Closes apache#7273 .

# Rationale for this change

Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.

# What changes are included in this PR?

There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.

Added ryu and itoa to convert primitive numbers to strings

# Are these changes tested?

We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

If tests are not included in your PR, please explain why (for example,
are they covered by existing tests)?

I assume since I am not adding any functionality there are already tests
covering this

# Are there any user-facing changes?

If there are user-facing changes then we may require documentation to be
updated before approving the PR.

If there are any breaking changes to public APIs, please call them out.

There should not be

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-pyarrow-testing` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-ord` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-pyarrow` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
…he#8433)

# Which issue does this PR close?

- Part of apache#4886

# Rationale for this change

This change adds support for Arrow DataType::Duration to the arrow-avro
crate. Previous versions of this code return a NotYetImplemented error
encouraging users to manually cast to Interval(MonthDayNano). With this
change, Duration will now be represented as a long, with a logicalType
value corresponding to the TimeUnit of the Arrow duration
(`arrow.duration-nanos`, `arrow.duration-micros`,
`arrow.duration-millis`, `arrow.duration-seconds`). This retains the
Arrow paradigm for Duration of clock time, rather than the Avro approach
of [calendar
time](https://avro.apache.org/docs/1.11.1/specification/#duration).
Because of this disconnect between the two specs, any attempt to map the
value (e.g. seconds into days) would be lossy, as days and months can be
of varying length.

# What changes are included in this PR?

Expands the arrow-avro crate to handle Arrow `Duration` types with
various `TimeUnit` variants (Second, Millisecond, Microsecond,
Nanosecond). Includes:

- Additions in encoder/decoder to support Duration types.
- Updates to schema handling for duration-specific metadata.
- Comprehensive unit tests for reading and writing `Duration` types.

# Are these changes tested?

Yes, existing tests are all passing, and tests have been added to
validate the encoding and decoding of Duration. A round trip test has
been added to `writer/mod.rs`.

# Are there any user-facing changes?

-  Crate is not yet public
# Which issue does this PR close?

- Contribute to apache#6827

# Rationale for this change

Splitting up apache#8227.

# What changes are included in this PR?

Migrate `arrow-pyarrow-integration-testing` to Rust 2024

# Are these changes tested?

CI

# Are there any user-facing changes?

Yes
rambleraptor and others added 22 commits November 22, 2025 09:21
…8909)

# Which issue does this PR close?

- Closes apache#8908.

# Rationale for this change

Add support for `ListView` and `LargeListView` in `ArrayData::new_null`

# What changes are included in this PR?

Handle match arm + add testcase

# Are these changes tested?

Yes

# Are there any user-facing changes?

No
# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Closes apache#8910 .

# Rationale for this change

To fix the doc-test with feature-flag `prettyprint`

# What changes are included in this PR?

Enabled feature-flag `prettyprint` for specific doc-test that need this
feature.

# Are these changes tested?
Yes

# Are there any user-facing changes?
No
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to
6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v6.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>v6-beta by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2298">actions/checkout#2298</a></li>
<li>update readme/changelog for v6 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2311">actions/checkout#2311</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5.0.0...v6.0.0">https://github.com/actions/checkout/compare/v5.0.0...v6.0.0</a></p>
<h2>v6-beta</h2>
<h2>What's Changed</h2>
<p>Updated persist-credentials to store the credentials under
<code>$RUNNER_TEMP</code> instead of directly in the local git
config.</p>
<p>This requires a minimum Actions Runner version of <a
href="https://github.com/actions/runner/releases/tag/v2.329.0">v2.329.0</a>
to access the persisted credentials for <a
href="https://docs.github.com/en/actions/tutorials/use-containerized-services/create-a-docker-container-action">Docker
container action</a> scenarios.</p>
<h2>v5.0.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v5...v5.0.1">https://github.com/actions/checkout/compare/v5...v5.0.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>V6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>V5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>V5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>V4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>V4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<h2>v4.2.0</h2>
<ul>
<li>Add Ref and Commit outputs by <a
href="https://github.com/lucacome"><code>@​lucacome</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1180">actions/checkout#1180</a></li>
<li>Dependency updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>- <a
href="https://redirect.github.com/actions/checkout/pull/1777">actions/checkout#1777</a>,
<a
href="https://redirect.github.com/actions/checkout/pull/1872">actions/checkout#1872</a></li>
</ul>
<h2>v4.1.7</h2>
<ul>
<li>Bump the minor-npm-dependencies group across 1 directory with 4
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1739">actions/checkout#1739</a></li>
<li>Bump actions/checkout from 3 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1697">actions/checkout#1697</a></li>
<li>Check out other refs/* by commit by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1774">actions/checkout#1774</a></li>
<li>Pin actions/checkout's own workflows to a known, good, stable
version. by <a href="https://github.com/jww3"><code>@​jww3</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1776">actions/checkout#1776</a></li>
</ul>
<h2>v4.1.6</h2>
<ul>
<li>Check platform to set archive extension appropriately by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1732">actions/checkout#1732</a></li>
</ul>
<h2>v4.1.5</h2>
<ul>
<li>Update NPM dependencies by <a
href="https://github.com/cory-miller"><code>@​cory-miller</code></a> in
<a
href="https://redirect.github.com/actions/checkout/pull/1703">actions/checkout#1703</a></li>
<li>Bump github/codeql-action from 2 to 3 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1694">actions/checkout#1694</a></li>
<li>Bump actions/setup-node from 1 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1696">actions/checkout#1696</a></li>
<li>Bump actions/upload-artifact from 2 to 4 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1695">actions/checkout#1695</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/1af3b93b6815bc44a9784bd300feb67ff0d1eeb3"><code>1af3b93</code></a>
update readme/changelog for v6 (<a
href="https://redirect.github.com/actions/checkout/issues/2311">#2311</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/71cf2267d89c5cb81562390fa70a37fa40b1305e"><code>71cf226</code></a>
v6-beta (<a
href="https://redirect.github.com/actions/checkout/issues/2298">#2298</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/069c6959146423d11cd0184e6accf28f9d45f06e"><code>069c695</code></a>
Persist creds to a separate file (<a
href="https://redirect.github.com/actions/checkout/issues/2286">#2286</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493"><code>ff7abcd</code></a>
Update README to include Node.js 24 support details and requirements (<a
href="https://redirect.github.com/actions/checkout/issues/2248">#2248</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/v5...v6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=5&new-version=6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
# Which issue does this PR close?

- Closes apache#8904.

# Rationale for this change

`GenericListViewArray::new_null` should return an array with correct
len.

# What changes are included in this PR?

Construct zeroed offsets and sizes for list view.

# Are these changes tested?

Yes.

# Are there any user-facing changes?

No.
# Rationale for this change

This PR adds convenience getter methods to the `UnionFields` api. It's
very common to find a specific union field by `FieldRef` or type id
# Which issue does this PR close?

This PR adds another method on the `UnionArray` api that returns a list
of `FieldRef`s associated with the union type

See: apache#8838 (comment)
# Which issue does this PR close?

- Closes apache#8837
- Related to apache#8828

# Rationale for this change

This PR implements comparison functionality for Union arrays. This
implementation follows a simple ordering strategy where unions are first
compared by their type identifier, and only when type identifiers match
are the actual values within those types compared

This approach handles both sparse and dense union modes correctly by
using offsets when present (dense unions) or direct indices (sparse
unions) to locate the appropriate child array values
# Which issue does this PR close?

- Part of apache#8464

# Rationale for this change

While releasing arrow 57.1.0 there is a new dependency on arrow-ord from
arrow-select so I needed to change the order of publishing

# What changes are included in this PR?

Update instructions

# Are these changes tested?

I did so manually
# Are there any user-facing changes?

No
# Which issue does this PR close?

Closes apache#8870.

# What changes are included in this PR?

Check if field order in from/to casting matches, and if not, attempt to
find the fields by name.

# Are these changes tested?

Added unit tests (that previously failed, so I separated them in a
commit).

# Are there any user-facing changes?

No, it's strictly additive functionality.

@alamb @vegarsti
…ache#8914)

# Which issue does this PR close?

- Follow-up on apache#8901 

# Rationale for this change

It's non-obvious why the number "8" appears here.

# What changes are included in this PR?

Name the number such that it's more obvious that this is a conversion
from bytes to bits.

@alamb I can also include the [suggested
comment](apache#8901 (comment))
if you prefer it. I thought the constant may have a lesser risk of
becoming outdated without being noticed when changes to
`MutableBuffer::new_null` happen.

# Are these changes tested?

- No behavior changes

# Are there any user-facing changes?

- No
)

# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Related to
https://github.com/apache/arrow-rs/pull/8874/files#r2550560291

# Rationale for this change

@vustef
[pointed](https://github.com/apache/arrow-rs/pull/8874/files#r2550560291)
out the changelog for 57.1.0 improperly misses the row number support

# What changes are included in this PR?

Fix the Changelog

NOTE this doesn't affect the changelog on the 57.1.0 tag -- I will
however, add a note to apache#8800 to
lead people there

# Are these changes tested?

CI

# Are there any user-facing changes?
# Which issue does this PR close?

- Closes apache#8926 .

Note that creating sch arrays was already possible with the builder API
(see `test_fixed_size_binary_builder_with_zero_value_length`) but not
directly with the Array API.

# Rationale for this change

Avoid panicking (divide by zero) in `FixedSizeBinaryArray::try_new(0,
...)`

# What changes are included in this PR?

Special case for `size == 0` in `FixedSizeBinaryArray::try_new`.

# Are these changes tested?

Yes, additional constructor tests.

# Are there any user-facing changes?

Yes, no panics and the ability to directly create FSB arrays with
zero-length items.
…valid `VariantArray` (apache#8921)

# Which issue does this PR close?

- part of apache#8887
# Rationale for this change

In this comment here:
apache#8887 (comment)

One of the tests intended to cover the behavior of CastOptions actually
contains an invalid Shredded variant (the values could not have been
shredded successfully because the integer values are out of range)

My understanding is that the test is intended to illustrate that casting
fails when a non-shredded variant into a shredded variant. Thus, it
would not have been possible to create the incorrect shredded variant in
the first place (there would have been an error during shredding)

# What changes are included in this PR?

1. Update the test to provide a valid VariantArray, and update the error
message

# Are these changes tested?
Only tests
# Are there any user-facing changes?

None -- this is a test only change
# Which issue does this PR close?


- Part of apache#8464

# Rationale for this change

Variant and geospatial have been released, they now should follow the
versioning of the other crates in this repo

There seemed to be some issue publishing the 57.1.0 release with these
crates.

# What changes are included in this PR?

Update versions to follow other crates
# Are these changes tested?

Yes by CI

# Are there any user-facing changes?

No
…pache#8887)

This pr improves the performance of `variant_get` on a perfectly
shredded variant, it bypasses the array builder and directly clone the
shredded column.

For example, if a variant looks like this:

```
optional group event (VARIANT) {
  required binary metadata;
  optional binary value;                
  optional group typed_value {        
    required group event_type {       
      optional binary value;                <- this is null
      optional binary typed_value (STRING);
    }
  }
}
```

Then if we read `event_type` and we also want to cast it into a string,
then we don't have to go through the builder but instead directly clone
the `typed_value` array.

Specifically this optimization is safe if:
1. `value` is null (does not exists)
2. `typed_value` has the same data type as the requested data type
 
I think this is a pretty common case of variant shredding.

====

This PR also has benchmark code. It improves the performance by many
many times (of course 😄).

Let me know what you think! (fwiw, this pr is part of the efforts in
datafusion-contrib/datafusion-variant#19 (comment))

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
Will panic if input buffer is invalid.

**CLOUDFLARE ALERT!!!**
)

# Which issue does this PR close?

- Closes apache#8819

# Rationale for this change

Adds support for using list view arrays through FFI

# What changes are included in this PR?

Support for the ListView types and arrays

# Are these changes tested?

I've added additional tests that verify round trips through FFI, and a
pyarrow integration test.

# Are there any user-facing changes?

Extended support for ListView, doesn't effect existing functionality.

---------

Co-authored-by: Andrew Lamb <andrew@nerdnetworks.org>
# Which issue does this PR close?

We generally require a GitHub issue to be filed for all bug fixes and
enhancements and this helps us generate change logs for our releases.
You can link an issue to this PR using the GitHub syntax.

- Closes apache#8932 .

# Rationale for this change

Why are you proposing this change? If this is already explained clearly
in the issue then this section is not needed.
Explaining clearly why changes are proposed helps reviewers understand
your changes and offer better suggestions for fixes.

Some `panic!` conversions

There is no need to duplicate the description in the issue here but it
is sometimes worth providing a summary of the individual changes in this
PR.

# Are these changes tested?

We typically require tests for all PRs in order to:
1. Prevent the code from being accidentally broken by subsequent changes
2. Serve as another way to document the expected behavior of the code

Not sure these panic test cases are covered

# Are there any user-facing changes?

N/A
apache#8790)

# Rationale for this change

When dealing with Parquet files that have an exceedingly large amount of
Binary or UTF8 data in one row group, there can be issues when returning
a single RecordBatch because of index overflows
(apache#7973).

In `pyarrow` this is usually solved by representing data as a
`pyarrow.Table` object whose columns are `ChunkedArray`s, which
basically are just lists of Arrow Arrays, or alternatively, the
`pyarrow.Table` is just a representation of a list of `RecordBatch`es.

I'd like to build a function in PyO3 that returns a `pyarrow.Table`,
very similar to [pyarrow's read_row_group
method](https://arrow.apache.org/docs/python/generated/pyarrow.parquet.ParquetFile.html#pyarrow.parquet.ParquetFile.read_row_group).
With that, we could have feature parity with `pyarrow` in circumstances
of potential index overflows without resorting to type changes (such as
reading the data as `LargeString` or `StringView` columns).
Currently, AFAIS, there is no way in `arrow-pyarrow` to export a
`pyarrow.Table` directly. Especially convenience methods from
`Vec<RecordBatch>` seem to be missing. This PR tries to implement a
convenience wrapper that allows directly exporting `pyarrow.Table`.

# What changes are included in this PR?

A new struct `Table` in the crate `arrow-pyarrow` is added which can be
constructed from `Vec<RecordBatch>` or from `ArrowArrayStreamReader`.
It implements `FromPyArrow` and `IntoPyArrow`. 

`FromPyArrow` will support anything that either implements the
ArrowStreamReader protocol or is a RecordBatchReader, or has a
`to_reader()` method which does that. `pyarrow.Table` does both of these
things.
`IntoPyArrow` will result int a `pyarrow.Table` on the Python side,
constructed through `pyarrow.Table.from_batches(...)`.

# Are these changes tested?

Yes, in `arrow-pyarrow-integration-tests`.

# Are there any user-facing changes?

A new `Table` convience wrapper is added!
Comment on lines +36 to +43
name: Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run audit check
run: cargo audit

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +39 to +53
name: Test
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Test parquet-geospatial
run: cargo test -p parquet-geospatial

# test compilation
linux-features:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +54 to +67
name: Check Compilation
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Check compilation (parquet-geospatial)
run: cargo check -p parquet-geospatial

clippy:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +68 to +79
name: Clippy
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Setup Clippy
run: rustup component add clippy
- name: Run clippy (parquet-geospatial)
run: cargo clippy -p parquet-geospatial --all-targets --all-features -- -D warnings

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +41 to +59
name: Test
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Test parquet-variant
run: cargo test -p parquet-variant
- name: Test parquet-variant-json
run: cargo test -p parquet-variant-json
- name: Test parquet-variant-compute
run: cargo test -p parquet-variant-compute

# test compilation
linux-features:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +60 to +77
name: Check Compilation
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Check compilation (parquet-variant)
run: cargo check -p parquet-variant
- name: Check compilation (parquet-variant-json)
run: cargo check -p parquet-variant-json
- name: Check compilation (parquet-variant-compute)
run: cargo check -p parquet-variant-compute

clippy:

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +78 to +93
name: Clippy
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Setup Clippy
run: rustup component add clippy
- name: Run clippy (parquet-variant)
run: cargo clippy -p parquet-variant --all-targets --all-features -- -D warnings
- name: Run clippy (parquet-variant-json)
run: cargo clippy -p parquet-variant-json --all-targets --all-features -- -D warnings
- name: Run clippy (parquet-variant-compute)
run: cargo clippy -p parquet-variant-compute --all-targets --all-features -- -D warnings

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
Comment on lines +111 to +129
name: Verify MSRV (Minimum Supported Rust Version)
runs-on: ubuntu-latest
container:
image: amd64/rust
steps:
- uses: actions/checkout@v6
- name: Setup Rust toolchain
uses: ./.github/actions/setup-builder
- name: Install cargo-msrv (if needed)
# cargo-msrv binary may be cached by the cargo cache step in setup-builder, and cargo install will error if it is already installed
run: if which cargo-msrv ; then echo "using existing cargo-msrv binary" ; else cargo install cargo-msrv ; fi
- name: Check all packages
run: |
# run `cargo msrv verify --manifest-path "path/to/Cargo.toml"` to see problematic dependencies
find . -mindepth 2 -name Cargo.toml | while read -r dir
do
echo "Checking package '$dir'"
cargo msrv verify --manifest-path "$dir" --output-format=json || exit 1
done

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
@heilhead
heilhead marked this pull request as ready for review December 8, 2025 09:36
@heilhead
heilhead merged commit c0d3f55 into master Dec 8, 2025
5 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.