Skip to content

Comments

feat: support repartitioning of FFI execution plans#20449

Draft
timsaucer wants to merge 25 commits intoapache:mainfrom
timsaucer:feat/ffi-support-repartitioned-plans
Draft

feat: support repartitioning of FFI execution plans#20449
timsaucer wants to merge 25 commits intoapache:mainfrom
timsaucer:feat/ffi-support-repartitioned-plans

Conversation

@timsaucer
Copy link
Member

@timsaucer timsaucer commented Feb 20, 2026

DRAFT: This requires a rebase after #19469 merges

Which issue does this PR close?

This is a blocker for #20450

Rationale for this change

This PR introduces an important concept in the FFI work to avoids creating wrappers upon wrappers of plans. It was discovered as part of the work to create FFI physical optimizer rules. Suppose we have a foreign plan. Then we attempt to turn this into an FFI plan. What we will end up with currently is a FFI plan where the underlying private data is a foreign plan that additionally contains a FFI plan. Instead any time we are creating an FFI object we should check to see if it is locally downcastable to a Foreign plan and if so to just access the already existing FFI object.

This pattern is adapted across all FFI objects in this PR.

With this work in place we can also properly support repartioning via FFI as well as new_with_children via FFI.

What changes are included in this PR?

  • Adds access pattern for creating new FFI objects. When they are already a locally downcastable to a Foreign wrapper then we simply get the underlying existing FFI object instead of creating a wrapper around a wrapper.
  • Implement repartitioning and new_with_children via FFI on execution plans.

Are these changes tested?

Integration tests are added.

Are there any user-facing changes?

The one use facing change is that for some of the aggregates and accumulators that take in closures we require these closures to be static so that we can downcast the boxed traits.

timsaucer and others added 24 commits February 16, 2026 20:17
## Which issue does this PR close?

No issue raised

## Rationale for this change

`try_shrink` never released any memory from the pool, and so would cause
a "memory leak"

## What changes are included in this PR?

A few changes to `MemoryReservation`

## Are these changes tested?

Yes & new test has been added

## Are there any user-facing changes?

Nope
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo) from 0.38.1
to 0.38.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/GuillaumeGomez/sysinfo/blob/main/CHANGELOG.md">sysinfo's
changelog</a>.</em></p>
<blockquote>
<h1>0.38.2</h1>
<ul>
<li>Implement <code>Error</code> trait for
<code>MacAddrFromStrError</code>, <code>IpNetworkFromStrError</code> and
<code>KillError</code> types.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/GuillaumeGomez/sysinfo/commit/e3e319f11b06b3a7db220f88eedac7904e0d6580"><code>e3e319f</code></a>
Merge pull request <a
href="https://redirect.github.com/GuillaumeGomez/sysinfo/issues/1626">#1626</a>
from GuillaumeGomez/update</li>
<li><a
href="https://github.com/GuillaumeGomez/sysinfo/commit/6673f0453ef7475781a81e3dab8e5492741d1580"><code>6673f04</code></a>
Update crate version to <code>0.38.2</code></li>
<li><a
href="https://github.com/GuillaumeGomez/sysinfo/commit/4239c851afcc55e7bfd4e7fbacb6404c51c26f88"><code>4239c85</code></a>
Update CHANGELOG for <code>0.38.2</code></li>
<li><a
href="https://github.com/GuillaumeGomez/sysinfo/commit/eb9160337977f5b9c6250741b376c5f3c114129d"><code>eb91603</code></a>
Merge pull request <a
href="https://redirect.github.com/GuillaumeGomez/sysinfo/issues/1625">#1625</a>
from GuillaumeGomez/error</li>
<li><a
href="https://github.com/GuillaumeGomez/sysinfo/commit/8aa5200e062dc62bbb92ab8e963151deb7099465"><code>8aa5200</code></a>
Implement <code>Error</code> trait for error types</li>
<li>See full diff in <a
href="https://github.com/GuillaumeGomez/sysinfo/compare/v0.38.1...v0.38.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sysinfo&package-manager=cargo&previous-version=0.38.1&new-version=0.38.2)](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 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>
Bumps [indicatif](https://github.com/console-rs/indicatif) from 0.18.3
to 0.18.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/console-rs/indicatif/releases">indicatif's
releases</a>.</em></p>
<blockquote>
<h2>0.18.4</h2>
<h2>What's Changed</h2>
<ul>
<li>initial draft oft hold_max with heuristic by <a
href="https://github.com/djugei"><code>@​djugei</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/657">console-rs/indicatif#657</a></li>
<li>Fix duration after finish by <a
href="https://github.com/luolong"><code>@​luolong</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/748">console-rs/indicatif#748</a></li>
<li>Add refresh rate warning for ProgressDrawTarget::term_like() by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/750">console-rs/indicatif#750</a></li>
<li>Seeking heuristic tweaks by <a
href="https://github.com/djc"><code>@​djc</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/751">console-rs/indicatif#751</a></li>
<li>Expose the current tab width by <a
href="https://github.com/alexisfontaine"><code>@​alexisfontaine</code></a>
in <a
href="https://redirect.github.com/console-rs/indicatif/pull/754">console-rs/indicatif#754</a></li>
<li>Make WASM support optional via a feature flag by <a
href="https://github.com/SvenFinn"><code>@​SvenFinn</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/761">console-rs/indicatif#761</a></li>
<li>fix: respect NO_COLOR and TERM=dumb environment variables by <a
href="https://github.com/shaanmajid"><code>@​shaanmajid</code></a> in <a
href="https://redirect.github.com/console-rs/indicatif/pull/764">console-rs/indicatif#764</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/console-rs/indicatif/commit/4de2f604c3f5af5556db0a1d15e296102879c8d9"><code>4de2f60</code></a>
Bump version to 0.18.4</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/8e0ab0e6b2b098afa68e62a9b41c6c9d6f74811d"><code>8e0ab0e</code></a>
fix: respect NO_COLOR and TERM=dumb environment variables</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/781b2d045bfecc61880ac7dbc171b72cc92eebab"><code>781b2d0</code></a>
Take semver-compatible dependency updates</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/34aee0740c59ad5ba5688328aec122b05b3c2dea"><code>34aee07</code></a>
Introduce unicode-width feature</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/51d284f25dc6fa2b4d5b25b6d13201f683119c9a"><code>51d284f</code></a>
Introduce wasmbind feature</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/ee057e542d0c587c57871aa1487b3f828dd99bbf"><code>ee057e5</code></a>
Bump tokio from 1.48.0 to 1.49.0</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/31bcea3a68acc00363c5be5d69d5f7c8b3a27ed5"><code>31bcea3</code></a>
Bump portable-atomic from 1.11.1 to 1.12.0</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/dbd26eb18157e5fad18c79e1933ad5f249165d6c"><code>dbd26eb</code></a>
Bump console from 0.16.1 to 0.16.2</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/7ac4a0d1b8bb698619f9880105dc9d27799a3d55"><code>7ac4a0d</code></a>
Expose the current tab width</li>
<li><a
href="https://github.com/console-rs/indicatif/commit/95088ffd980a6f0cdd6571418fd9c6d6fd1603d1"><code>95088ff</code></a>
iter: clean up variable names, casting</li>
<li>Additional commits viewable in <a
href="https://github.com/console-rs/indicatif/compare/0.18.3...0.18.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=indicatif&package-manager=cargo&previous-version=0.18.3&new-version=0.18.4)](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 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>
Bumps [liblzma](https://github.com/portable-network-archive/liblzma-rs)
from 0.4.5 to 0.4.6.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/portable-network-archive/liblzma-rs/releases">liblzma's
releases</a>.</em></p>
<blockquote>
<h2>liblzma-0.4.6</h2>
<h2>What's Changed</h2>
<ul>
<li>:sparkles: expose and document extreme preset support by <a
href="https://github.com/ChanTsune"><code>@​ChanTsune</code></a> in <a
href="https://redirect.github.com/Portable-Network-Archive/liblzma-rs/pull/203">Portable-Network-Archive/liblzma-rs#203</a></li>
<li>:bookmark: Bump liblzma version to 0.4.6 by <a
href="https://github.com/ChanTsune"><code>@​ChanTsune</code></a> in <a
href="https://redirect.github.com/Portable-Network-Archive/liblzma-rs/pull/205">Portable-Network-Archive/liblzma-rs#205</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Portable-Network-Archive/liblzma-rs/compare/liblzma-sys-0.4.5...liblzma-0.4.6">https://github.com/Portable-Network-Archive/liblzma-rs/compare/liblzma-sys-0.4.5...liblzma-0.4.6</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/8f8d7a349bc513e9cdeeb3d9073d54f544549846"><code>8f8d7a3</code></a>
:bookmark: Bump liblzma version to 0.4.6</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/0c244de2cd1a81a9d60a07de7dbd628ea734bae1"><code>0c244de</code></a>
:sparkles: expose and document extreme preset support</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/6ab07a0f79bf1593cc91dfc51a5de855a6f21afc"><code>6ab07a0</code></a>
:arrow_up: Bump libc in msrv lockfile</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/ece95abf853ed9594557c41efefab9abf8c8f56b"><code>ece95ab</code></a>
:construction_worker: Use msrv lockfile in wasm workflow</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/7d0de0a1eea629043e1acf7246ef24df631d0443"><code>7d0de0a</code></a>
:arrow_up: Bump peter-evans/create-pull-request from 6 to 8</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/d75448814875ce7445597198118f95a1393b23c2"><code>d754488</code></a>
:construction_worker: xz version bump automation</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/36d7b596ea8899d02153a472d00366b025ab39fc"><code>36d7b59</code></a>
:bookmark: Bump liblzma-sys version to 0.4.5</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/2ec405a3ce5a2a9e8e2d56f2a89896f15cc84354"><code>2ec405a</code></a>
Revert &quot;:construction_worker: Pin nightly rust version on wasm
CI&quot;</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/11fbc926c455939ee49f4429bd919114a5ca20d9"><code>11fbc92</code></a>
:alien: Regenerate bindgen for xz 5.8.2</li>
<li><a
href="https://github.com/Portable-Network-Archive/liblzma-rs/commit/ee402b1c36a02f90f721dcd97996c86419f351ad"><code>ee402b1</code></a>
:arrow_up: Bump xz version to 5.8.2</li>
<li>Additional commits viewable in <a
href="https://github.com/portable-network-archive/liblzma-rs/compare/liblzma-0.4.5...liblzma-0.4.6">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=liblzma&package-manager=cargo&previous-version=0.4.5&new-version=0.4.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 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>
Bumps [aws-config](https://github.com/smithy-lang/smithy-rs) from 1.8.13
to 1.8.14.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/smithy-lang/smithy-rs/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=aws-config&package-manager=cargo&previous-version=1.8.13&new-version=1.8.14)](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 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>
Bumps [tonic](https://github.com/hyperium/tonic) from 0.14.3 to 0.14.4.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/hyperium/tonic/releases">tonic's
releases</a>.</em></p>
<blockquote>
<h2>v0.14.4</h2>
<h2>What's Changed</h2>
<ul>
<li>chore(doc): Replace doc_auto_cfg config with doc_cfg by <a
href="https://github.com/tottoto"><code>@​tottoto</code></a> in <a
href="https://redirect.github.com/hyperium/tonic/pull/2428">hyperium/tonic#2428</a></li>
<li>fix(web): allow space after <code>:</code> in
<code>grpc-status</code> by <a
href="https://github.com/LucioFranco"><code>@​LucioFranco</code></a> in
<a
href="https://redirect.github.com/hyperium/tonic/pull/2506">hyperium/tonic#2506</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/r0x0d"><code>@​r0x0d</code></a> made
their first contribution in <a
href="https://redirect.github.com/hyperium/tonic/pull/2502">hyperium/tonic#2502</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/hyperium/tonic/compare/v0.14.3...v0.14.4">https://github.com/hyperium/tonic/compare/v0.14.3...v0.14.4</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/hyperium/tonic/commit/cd5b32fa6794896b4ad5ea86fbf0ecbb49c80ad9"><code>cd5b32f</code></a>
chore: prepare 0.14.4 release (<a
href="https://redirect.github.com/hyperium/tonic/issues/2504">#2504</a>)</li>
<li><a
href="https://github.com/hyperium/tonic/commit/27640d23d77c4f38bc16828f0211d999062b95d3"><code>27640d2</code></a>
fix(web): allow space after <code>:</code> in <code>grpc-status</code>
(<a
href="https://redirect.github.com/hyperium/tonic/issues/2506">#2506</a>)</li>
<li><a
href="https://github.com/hyperium/tonic/commit/0c26ee1e673810e9eee7fead806408c937215dfb"><code>0c26ee1</code></a>
Fix permission of a series of files (<a
href="https://redirect.github.com/hyperium/tonic/issues/2502">#2502</a>)</li>
<li><a
href="https://github.com/hyperium/tonic/commit/c25daa68a94b8649ea617ed6fabad648ee6169f9"><code>c25daa6</code></a>
fix(ci): remove comment from manifest to unblock version parsing (<a
href="https://redirect.github.com/hyperium/tonic/issues/2501">#2501</a>)</li>
<li><a
href="https://github.com/hyperium/tonic/commit/3efc5f9ce817614d0444f67c02b94bf7f767029d"><code>3efc5f9</code></a>
chore(doc): Replace doc_auto_cfg config with doc_cfg (<a
href="https://redirect.github.com/hyperium/tonic/issues/2428">#2428</a>)</li>
<li>See full diff in <a
href="https://github.com/hyperium/tonic/compare/v0.14.3...v0.14.4">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=tonic&package-manager=cargo&previous-version=0.14.3&new-version=0.14.4)](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 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>
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.57 to 4.5.59.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/releases">clap's
releases</a>.</em></p>
<blockquote>
<h2>v4.5.59</h2>
<h2>[4.5.59] - 2026-02-16</h2>
<h3>Fixes</h3>
<ul>
<li><code>Command::ignore_errors</code> no longer masks help/version on
subcommands</li>
</ul>
<h2>v4.5.58</h2>
<h2>[4.5.58] - 2026-02-11</h2>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's
changelog</a>.</em></p>
<blockquote>
<h2>[4.5.59] - 2026-02-16</h2>
<h3>Fixes</h3>
<ul>
<li><code>Command::ignore_errors</code> no longer masks help/version on
subcommands</li>
</ul>
<h2>[4.5.58] - 2026-02-11</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/clap-rs/clap/commit/0bb3ad7e12e729be9f152391558689ac4fdd31ec"><code>0bb3ad7</code></a>
chore: Release</li>
<li><a
href="https://github.com/clap-rs/clap/commit/5cb5ce3873a882ba2a7d619864202eadef21fffa"><code>5cb5ce3</code></a>
docs: Update changelog</li>
<li><a
href="https://github.com/clap-rs/clap/commit/245c8ba75a481250a48170f1add11532a7b7fd33"><code>245c8ba</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6149">#6149</a>
from epage/wrap</li>
<li><a
href="https://github.com/clap-rs/clap/commit/dd17a418a9e6665c98ff6e0ba2a039fd1921988e"><code>dd17a41</code></a>
fix(help): Correctly calculate wrap points with ANSI escape codes</li>
<li><a
href="https://github.com/clap-rs/clap/commit/2cc4e350b9ea8955a9cf229405407426921e7871"><code>2cc4e35</code></a>
test(ui): Avoid override term width</li>
<li><a
href="https://github.com/clap-rs/clap/commit/93e3559b1e4c8c81377f3598f7249b7708f4c379"><code>93e3559</code></a>
refactor(help): Clarify that we're carrying over indentation</li>
<li><a
href="https://github.com/clap-rs/clap/commit/b1c46e633c04f5cb0d819b15f25c1fde1a6e42c4"><code>b1c46e6</code></a>
refactor(help): Clarify var name</li>
<li><a
href="https://github.com/clap-rs/clap/commit/03b9b38df059c1a9a529f295e038f81de295627a"><code>03b9b38</code></a>
test(help): Show styled wrapping behavior</li>
<li><a
href="https://github.com/clap-rs/clap/commit/c9a39a534c3e95926be272765bec48a80e5ea9e7"><code>c9a39a5</code></a>
Merge pull request <a
href="https://redirect.github.com/clap-rs/clap/issues/6146">#6146</a>
from clap-rs/renovate/actions-checkout-5.x</li>
<li><a
href="https://github.com/clap-rs/clap/commit/58599fb7bf865f8ec0a7a021dea8111f5dffe6d2"><code>58599fb</code></a>
chore(deps): Update actions/checkout action to v5</li>
<li>Additional commits viewable in <a
href="https://github.com/clap-rs/clap/compare/clap_complete-v4.5.57...clap_complete-v4.5.59">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=clap&package-manager=cargo&previous-version=4.5.57&new-version=4.5.59)](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 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>
Bumps [sqllogictest](https://github.com/risinglightdb/sqllogictest-rs)
from 0.29.0 to 0.29.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/risinglightdb/sqllogictest-rs/releases">sqllogictest's
releases</a>.</em></p>
<blockquote>
<h2>v0.29.1</h2>
<h2>[0.29.1] - 2026-02-13</h2>
<ul>
<li>parser/runner: Add <code>let</code> record for binding query results
to variables.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/risinglightdb/sqllogictest-rs/blob/main/CHANGELOG.md">sqllogictest's
changelog</a>.</em></p>
<blockquote>
<h2>[0.29.1] - 2026-02-13</h2>
<ul>
<li>parser/runner: Add <code>let</code> record for binding query results
to variables.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/risinglightdb/sqllogictest-rs/commit/ebab8dae6d6655e86a4793c70246df6fbaa80ecb"><code>ebab8da</code></a>
chore: bump version to v0.29.1 (<a
href="https://redirect.github.com/risinglightdb/sqllogictest-rs/issues/280">#280</a>)</li>
<li><a
href="https://github.com/risinglightdb/sqllogictest-rs/commit/18a6169dce73fb9a1536a60d89d09b25584d8fbc"><code>18a6169</code></a>
feat(parser,runner): add <code>let</code> record for binding query
results to variables ...</li>
<li>See full diff in <a
href="https://github.com/risinglightdb/sqllogictest-rs/compare/v0.29.0...v0.29.1">compare
view</a></li>
</ul>
</details>
<br />

<details>
<summary>Most Recent Ignore Conditions Applied to This Pull
Request</summary>

| Dependency Name | Ignore Conditions |
| --- | --- |
| sqllogictest | [>= 0.25.a, < 0.26] |
</details>


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=sqllogictest&package-manager=cargo&previous-version=0.29.0&new-version=0.29.1)](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 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>
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️ 

Rebasing might not happen immediately, so don't worry if this takes some
time.

Note: if you make any changes to this PR yourself, they will take
precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps [env_logger](https://github.com/rust-cli/env_logger) from 0.11.8
to 0.11.9.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rust-cli/env_logger/releases">env_logger's
releases</a>.</em></p>
<blockquote>
<h2>v0.11.9</h2>
<h2>[0.11.9] - 2026-02-11</h2>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md">env_logger's
changelog</a>.</em></p>
<blockquote>
<h2>[0.11.9] - 2026-02-11</h2>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rust-cli/env_logger/commit/2f06b4c7cf359b348cf92f95f83176897cedc838"><code>2f06b4c</code></a>
chore: Release</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/57e13acb42cac437ace7d3b9819f46de1d5f5d5a"><code>57e13ac</code></a>
chore: Release</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/4f9066d8af43095cf95bb9ddae046095af117dd6"><code>4f9066d</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/env_logger/issues/393">#393</a>
from rust-cli/renovate/crate-ci-typos-1.x</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/3e4709a2665c93f39c0cf63b84ceaea8da42864e"><code>3e4709a</code></a>
chore(deps): Update Rust crate snapbox to v0.6.24 (<a
href="https://redirect.github.com/rust-cli/env_logger/issues/394">#394</a>)</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/80ff83adba5f55a293a484e684cd10b88c6739de"><code>80ff83a</code></a>
chore(deps): Update pre-commit hook crate-ci/typos to v1.42.3</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/76891b9e32d7e0c2a43a6f843a20caaf5adb0782"><code>76891b9</code></a>
Merge pull request <a
href="https://redirect.github.com/rust-cli/env_logger/issues/392">#392</a>
from epage/template</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/14cda4a666db7f262fbc87f752ee2bc4d977100f"><code>14cda4a</code></a>
chore: Update from _rust template</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/e4f2b351a3d5290a8f26db395bf736e0f80a5856"><code>e4f2b35</code></a>
chore(ci): Update action</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/6d0d36b0723b29856d380eb89b3c571a9f9c570f"><code>6d0d36b</code></a>
chore(ci): Clean up previous branch in case it was leaked</li>
<li><a
href="https://github.com/rust-cli/env_logger/commit/30b3b14bd665d443f45123729dc69d1f085575f9"><code>30b3b14</code></a>
chore(ci): Fix how rustfmt jobs run</li>
<li>Additional commits viewable in <a
href="https://github.com/rust-cli/env_logger/compare/v0.11.8...v0.11.9">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=env_logger&package-manager=cargo&previous-version=0.11.8&new-version=0.11.9)](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 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>
Bumps [actions/stale](https://github.com/actions/stale) from 10.1.1 to
10.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/stale/releases">actions/stale's
releases</a>.</em></p>
<blockquote>
<h2>v10.2.0</h2>
<h2>What's Changed</h2>
<h3>Bug Fix</h3>
<ul>
<li>Fix checking state cache (fix <a
href="https://redirect.github.com/actions/stale/issues/1136">#1136</a>)
and switch to Octokit helper methods by <a
href="https://github.com/itchyny"><code>@​itchyny</code></a> in <a
href="https://redirect.github.com/actions/stale/pull/1152">actions/stale#1152</a></li>
</ul>
<h3>Dependency Updates</h3>
<ul>
<li>Upgrade js-yaml from 4.1.0 to 4.1.1 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/stale/pull/1304">actions/stale#1304</a></li>
<li>Upgrade lodash from 4.17.21 to 4.17.23 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a
href="https://redirect.github.com/actions/stale/pull/1313">actions/stale#1313</a></li>
<li>Upgrade actions/cache from 4.0.3 to 5.0.2 and actions/github from
5.1.1 to 7.0.0 by <a
href="https://github.com/chiranjib-swain"><code>@​chiranjib-swain</code></a>
in <a
href="https://redirect.github.com/actions/stale/pull/1312">actions/stale#1312</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/itchyny"><code>@​itchyny</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/stale/pull/1152">actions/stale#1152</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/stale/compare/v10...v10.2.0">https://github.com/actions/stale/compare/v10...v10.2.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/stale/commit/b5d41d4e1d5dceea10e7104786b73624c18a190f"><code>b5d41d4</code></a>
build(deps-dev): bump lodash from 4.17.21 to 4.17.23 (<a
href="https://redirect.github.com/actions/stale/issues/1313">#1313</a>)</li>
<li><a
href="https://github.com/actions/stale/commit/dcd2b9469d2220b7e8d08aedc00c105d277fd46b"><code>dcd2b94</code></a>
Fix punycode and url.parse Deprecation Warnings (<a
href="https://redirect.github.com/actions/stale/issues/1312">#1312</a>)</li>
<li><a
href="https://github.com/actions/stale/commit/d6f8a33132340b15a7006f552936e4b9b39c00ec"><code>d6f8a33</code></a>
build(deps-dev): bump js-yaml from 4.1.0 to 4.1.1 (<a
href="https://redirect.github.com/actions/stale/issues/1304">#1304</a>)</li>
<li><a
href="https://github.com/actions/stale/commit/a21a0816299b11691f9592ef0d63d08e02f06d9d"><code>a21a081</code></a>
Fix checking state cache (fix <a
href="https://redirect.github.com/actions/stale/issues/1136">#1136</a>),
also switch to octokit methods (<a
href="https://redirect.github.com/actions/stale/issues/1152">#1152</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/stale/compare/997185467fa4f803885201cee163a9f38240193d...b5d41d4e1d5dceea10e7104786b73624c18a190f">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/stale&package-manager=github_actions&previous-version=10.1.1&new-version=10.2.0)](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 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>
Bumps [maturin](https://github.com/pyo3/maturin) from 1.11.5 to 1.12.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pyo3/maturin/releases">maturin's
releases</a>.</em></p>
<blockquote>
<h2>v1.12.2</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: allow absolute paths for <code>--sbom-include</code> by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/3004">PyO3/maturin#3004</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/PyO3/maturin/compare/v1.12.1...v1.12.2">https://github.com/PyO3/maturin/compare/v1.12.1...v1.12.2</a></p>
<h2>v1.12.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Add <code>--sbom-include</code> CLI argument for additional SBOM
files by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2999">PyO3/maturin#2999</a></li>
<li>fix: resolve include patterns relative to python-source for sdist
and wheel by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/3000">PyO3/maturin#3000</a></li>
<li>feat: support including <code>OUT_DIR</code> assets in wheel builds
by <a href="https://github.com/messense"><code>@​messense</code></a> in
<a
href="https://redirect.github.com/PyO3/maturin/pull/3001">PyO3/maturin#3001</a></li>
<li>add test case for uniffi with multiple crates by <a
href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a> in
<a
href="https://redirect.github.com/PyO3/maturin/pull/2839">PyO3/maturin#2839</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/PyO3/maturin/compare/v1.12.0...v1.12.1">https://github.com/PyO3/maturin/compare/v1.12.0...v1.12.1</a></p>
<h2>v1.12.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Use pypi compatibility validation for own CI by <a
href="https://github.com/konstin"><code>@​konstin</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2929">PyO3/maturin#2929</a></li>
<li>Update toml crates for toml 1.1 support by <a
href="https://github.com/konstin"><code>@​konstin</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2934">PyO3/maturin#2934</a></li>
<li>Use a single location for MSRV by <a
href="https://github.com/konstin"><code>@​konstin</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2936">PyO3/maturin#2936</a></li>
<li>Fix editable install for binary projects with Python modules by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2938">PyO3/maturin#2938</a></li>
<li>Release to crates.io only after the builds passed by <a
href="https://github.com/konstin"><code>@​konstin</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2939">PyO3/maturin#2939</a></li>
<li>Use <code>mymindstorm/setup-emsdk@v14</code> in generated GitHub
Actions workflow by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2941">PyO3/maturin#2941</a></li>
<li>Use trusted publishing for crates.io by <a
href="https://github.com/konstin"><code>@​konstin</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2943">PyO3/maturin#2943</a></li>
<li>Filter linked_paths by KIND and linked_libs by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2949">PyO3/maturin#2949</a></li>
<li>Update bytes to 1.11.1 by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2960">PyO3/maturin#2960</a></li>
<li>Normalize wheel distribution names to match the PyPA spec by <a
href="https://github.com/artob"><code>@​artob</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2954">PyO3/maturin#2954</a></li>
<li>Allow build loongarch64 and riscv64 for musllinux by <a
href="https://github.com/wojiushixiaobai"><code>@​wojiushixiaobai</code></a>
in <a
href="https://redirect.github.com/PyO3/maturin/pull/2963">PyO3/maturin#2963</a></li>
<li>Strip excluded cargo targets in sdist by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2964">PyO3/maturin#2964</a></li>
<li>Normalize wheel <code>RECORD</code> paths (on Windows) by <a
href="https://github.com/texodus"><code>@​texodus</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2965">PyO3/maturin#2965</a></li>
<li>Bump MSRV to 1.88.0 by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2966">PyO3/maturin#2966</a></li>
<li>Support MATURIN_STRIP env var and --strip true/false to override
pyproject.toml by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2968">PyO3/maturin#2968</a></li>
<li>fix: copy bin artifacts before auditwheel repair to avoid rerun
failures by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2969">PyO3/maturin#2969</a></li>
<li>fix: rewrite python-source in pyproject.toml when building sdist by
<a href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2972">PyO3/maturin#2972</a></li>
<li>fix: resolve wheel include patterns relative to project root by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2973">PyO3/maturin#2973</a></li>
<li>fix: always include workspace Cargo.toml in sdist by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2974">PyO3/maturin#2974</a></li>
<li>refactor: simplify source_distribution.rs by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2976">PyO3/maturin#2976</a></li>
<li>feat: support PEP 735 dependency groups in develop command by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2978">PyO3/maturin#2978</a></li>
<li>Fix license file handling for workspace-level license files by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2970">PyO3/maturin#2970</a></li>
<li>Support PEP 739 build-details.json when cross compiling by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2979">PyO3/maturin#2979</a></li>
<li>Fix .libs directory name for namespace packages by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2981">PyO3/maturin#2981</a></li>
<li>fix: exclude duplicate python source files from sdist for workspace
members by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2982">PyO3/maturin#2982</a></li>
<li>fix: remove default-members from workspace Cargo.toml in sdist by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2983">PyO3/maturin#2983</a></li>
<li>fix: correctly filter workspace members in sdist by directory path
by <a href="https://github.com/messense"><code>@​messense</code></a> in
<a
href="https://redirect.github.com/PyO3/maturin/pull/2984">PyO3/maturin#2984</a></li>
<li>feat: Add PEP 770 SBOM support by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2980">PyO3/maturin#2980</a></li>
<li>Error when python-source is set but Python module is missing by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2986">PyO3/maturin#2986</a></li>
<li>feat: add auditwheel SBOM for grafted shared libraries by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2985">PyO3/maturin#2985</a></li>
<li>Fix sdist duplicate README error when readme is in both Cargo.toml
and pyproject.toml by <a
href="https://github.com/messense"><code>@​messense</code></a> in <a
href="https://redirect.github.com/PyO3/maturin/pull/2987">PyO3/maturin#2987</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/PyO3/maturin/blob/main/Changelog.md">maturin's
changelog</a>.</em></p>
<blockquote>
<h2>1.12.2</h2>
<ul>
<li>Fix: allow absolute paths for <code>--sbom-include</code> (<a
href="https://redirect.github.com/pyo3/maturin/issues/3004">#3004</a>)</li>
</ul>
<h2>1.12.1</h2>
<ul>
<li>Replace addnab/docker-run-action with direct docker run command</li>
<li>Add <code>--sbom-include</code> CLI argument for additional SBOM
files (<a
href="https://redirect.github.com/pyo3/maturin/issues/2999">#2999</a>)</li>
<li>Fix: resolve include patterns relative to python-source for sdist
and wheel (<a
href="https://redirect.github.com/pyo3/maturin/issues/3000">#3000</a>)</li>
<li>Feat: log external shared libraries and their dependents before
patchelf</li>
<li>Feat: support including <code>OUT_DIR</code> assets in wheel builds
(<a
href="https://redirect.github.com/pyo3/maturin/issues/3001">#3001</a>)</li>
<li>Add test case for uniffi with multiple crates (<a
href="https://redirect.github.com/pyo3/maturin/issues/2839">#2839</a>)</li>
</ul>
<h2>1.12.0</h2>
<ul>
<li>Use pypi compatibility validation for own CI (<a
href="https://redirect.github.com/pyo3/maturin/issues/2929">#2929</a>)</li>
<li>Update toml crates for toml 1.1 support (<a
href="https://redirect.github.com/pyo3/maturin/issues/2934">#2934</a>)</li>
<li>Use a single location for MSRV (<a
href="https://redirect.github.com/pyo3/maturin/issues/2936">#2936</a>)</li>
<li>Fix editable install for binary projects with Python modules (<a
href="https://redirect.github.com/pyo3/maturin/issues/2938">#2938</a>)</li>
<li>Release to crates.io only after the builds passed (<a
href="https://redirect.github.com/pyo3/maturin/issues/2939">#2939</a>)</li>
<li>Use <code>mymindstorm/setup-emsdk@v14</code> in generated GitHub
Actions workflow (<a
href="https://redirect.github.com/pyo3/maturin/issues/2941">#2941</a>)</li>
<li>Use trusted publishing for crates.io (<a
href="https://redirect.github.com/pyo3/maturin/issues/2943">#2943</a>)</li>
<li>Filter linked_paths by KIND and linked_libs (<a
href="https://redirect.github.com/pyo3/maturin/issues/2949">#2949</a>)</li>
<li>Update bytes to 1.11.1 (<a
href="https://redirect.github.com/pyo3/maturin/issues/2960">#2960</a>)</li>
<li>Normalize wheel distribution names to match the PyPA spec (<a
href="https://redirect.github.com/pyo3/maturin/issues/2954">#2954</a>)</li>
<li>Allow build loongarch64 and riscv64 for musllinux (<a
href="https://redirect.github.com/pyo3/maturin/issues/2963">#2963</a>)</li>
<li>Strip excluded cargo targets in sdist (<a
href="https://redirect.github.com/pyo3/maturin/issues/2964">#2964</a>)</li>
<li>Normalize wheel <code>RECORD</code> paths (on Windows) (<a
href="https://redirect.github.com/pyo3/maturin/issues/2965">#2965</a>)</li>
<li>Bump MSRV to 1.88.0 (<a
href="https://redirect.github.com/pyo3/maturin/issues/2966">#2966</a>)</li>
<li>Support MATURIN_STRIP env var and --strip true/false to override
pyproject.toml (<a
href="https://redirect.github.com/pyo3/maturin/issues/2968">#2968</a>)</li>
<li>Fix: copy bin artifacts before auditwheel repair to avoid rerun
failures (<a
href="https://redirect.github.com/pyo3/maturin/issues/2969">#2969</a>)</li>
<li>Fix: rewrite python-source in pyproject.toml when building sdist (<a
href="https://redirect.github.com/pyo3/maturin/issues/2972">#2972</a>)</li>
<li>Fix: resolve wheel include patterns relative to project root (<a
href="https://redirect.github.com/pyo3/maturin/issues/2973">#2973</a>)</li>
<li>Fix: always include workspace Cargo.toml in sdist (<a
href="https://redirect.github.com/pyo3/maturin/issues/2974">#2974</a>)</li>
<li>Refactor: simplify source_distribution.rs (<a
href="https://redirect.github.com/pyo3/maturin/issues/2976">#2976</a>)</li>
<li>Feat: support PEP 735 dependency groups in develop command (<a
href="https://redirect.github.com/pyo3/maturin/issues/2978">#2978</a>)</li>
<li>Fix license file handling for workspace-level license files (<a
href="https://redirect.github.com/pyo3/maturin/issues/2970">#2970</a>)</li>
<li>Support PEP 739 build-details.json when cross compiling (<a
href="https://redirect.github.com/pyo3/maturin/issues/2979">#2979</a>)</li>
<li>Fix .libs directory name for namespace packages (<a
href="https://redirect.github.com/pyo3/maturin/issues/2981">#2981</a>)</li>
<li>Fix: exclude duplicate python source files from sdist for workspace
members (<a
href="https://redirect.github.com/pyo3/maturin/issues/2982">#2982</a>)</li>
<li>Fix: remove default-members from workspace Cargo.toml in sdist (<a
href="https://redirect.github.com/pyo3/maturin/issues/2983">#2983</a>)</li>
<li>Fix: correctly filter workspace members in sdist by directory path
(<a
href="https://redirect.github.com/pyo3/maturin/issues/2984">#2984</a>)</li>
<li>Feat: Add PEP 770 SBOM support (<a
href="https://redirect.github.com/pyo3/maturin/issues/2980">#2980</a>)</li>
<li>Error when python-source is set but Python module is missing (<a
href="https://redirect.github.com/pyo3/maturin/issues/2986">#2986</a>)</li>
<li>Feat: add auditwheel SBOM for grafted shared libraries (<a
href="https://redirect.github.com/pyo3/maturin/issues/2985">#2985</a>)</li>
<li>Fix sdist duplicate README error when readme is in both Cargo.toml
and pyproject.toml (<a
href="https://redirect.github.com/pyo3/maturin/issues/2987">#2987</a>)</li>
<li>Fix: support python-source pointing outside Rust source directory
(<a
href="https://redirect.github.com/pyo3/maturin/issues/2988">#2988</a>)</li>
<li>Relax ziglang dependency version requirement (<a
href="https://redirect.github.com/pyo3/maturin/issues/2990">#2990</a>)</li>
<li>Stop adding link-native-libraries flag by default in Emscripten
platform in latest Rust (<a
href="https://redirect.github.com/pyo3/maturin/issues/2991">#2991</a>)</li>
<li>Fix docker build github workflow</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/PyO3/maturin/commit/adb2906f90bb6b70722d0546c907b03e545c02f9"><code>adb2906</code></a>
Release v1.12.2</li>
<li><a
href="https://github.com/PyO3/maturin/commit/647356824548faf76cfb30421b21eb415323fe1d"><code>6473568</code></a>
fix: allow absolute paths for <code>--sbom-include</code> (<a
href="https://redirect.github.com/pyo3/maturin/issues/3004">#3004</a>)</li>
<li><a
href="https://github.com/PyO3/maturin/commit/e772489789a7052506d1884ac863b4ac59ffe5da"><code>e772489</code></a>
Release v1.12.1</li>
<li><a
href="https://github.com/PyO3/maturin/commit/0672082797e44ad3e0fd3570cc0b6f406f3680ef"><code>0672082</code></a>
add test case for uniffi with multiple crates (<a
href="https://redirect.github.com/pyo3/maturin/issues/2839">#2839</a>)</li>
<li><a
href="https://github.com/PyO3/maturin/commit/f201566f2a67d18bd4e85baa05e5d249f2be59a7"><code>f201566</code></a>
feat: support including <code>OUT_DIR</code> assets in wheel builds (<a
href="https://redirect.github.com/pyo3/maturin/issues/3001">#3001</a>)</li>
<li><a
href="https://github.com/PyO3/maturin/commit/66b4869413c9e174c3a5a17528f132a1426c7878"><code>66b4869</code></a>
feat: log external shared libraries and their dependents before
patchelf</li>
<li><a
href="https://github.com/PyO3/maturin/commit/8f8f9f7cbd035305328e4e3d7ef9b58cea665a3b"><code>8f8f9f7</code></a>
fix: resolve include patterns relative to python-source for sdist and
wheel (...</li>
<li><a
href="https://github.com/PyO3/maturin/commit/1688a73eec327f3e2fabdeb37e829da2bc2ceff0"><code>1688a73</code></a>
netlify: update mdbook to 0.5.2</li>
<li><a
href="https://github.com/PyO3/maturin/commit/aefe09d14376d88773d3dcf4c4c6a7693bf69e8b"><code>aefe09d</code></a>
Add <code>--sbom-include</code> CLI argument for additional SBOM files
(<a
href="https://redirect.github.com/pyo3/maturin/issues/2999">#2999</a>)</li>
<li><a
href="https://github.com/PyO3/maturin/commit/8a688caf69782bbab1370a0bce03ddbf3ada900e"><code>8a688ca</code></a>
Document SBOM support in user guide</li>
<li>Additional commits viewable in <a
href="https://github.com/pyo3/maturin/compare/v1.11.5...v1.12.2">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=maturin&package-manager=pip&previous-version=1.11.5&new-version=1.12.2)](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 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>
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.20.0 to 1.21.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/uuid-rs/uuid/releases">uuid's
releases</a>.</em></p>
<blockquote>
<h2>v1.21.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Update getrandom to 0.4 by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/858">uuid-rs/uuid#858</a></li>
<li>feat: impl core::error::Error for Error by <a
href="https://github.com/XAMPPRocky"><code>@​XAMPPRocky</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/852">uuid-rs/uuid#852</a></li>
<li>Prepare for 1.21.0 release by <a
href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/859">uuid-rs/uuid#859</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/XAMPPRocky"><code>@​XAMPPRocky</code></a> made
their first contribution in <a
href="https://redirect.github.com/uuid-rs/uuid/pull/852">uuid-rs/uuid#852</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/uuid-rs/uuid/compare/v1.20.0...v1.21.0">https://github.com/uuid-rs/uuid/compare/v1.20.0...v1.21.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/uuid-rs/uuid/commit/a38fa19b3d8fc640304b49dff853bd7fa3096f0b"><code>a38fa19</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/859">#859</a> from
uuid-rs/cargo/v1.21.0</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/e45b10fbc59e848e966db05438bd42ef4922d688"><code>e45b10f</code></a>
prepare for 1.21.0 release</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/f6f5d482737915c86e40a92b420f24ae0d9cca9c"><code>f6f5d48</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/852">#852</a> from
XAMPPRocky/main</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/9bee4bd565812b62c65a789793ebc04a8b7d7034"><code>9bee4bd</code></a>
Merge branch 'main' into main</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/cb8f15639186b2c1c0f7afed332602992a4c0201"><code>cb8f156</code></a>
Merge pull request <a
href="https://redirect.github.com/uuid-rs/uuid/issues/858">#858</a> from
uuid-rs/chore/getrandom-04</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/a59c06124331a95c36ff40fd23f8abb7d60e61b1"><code>a59c061</code></a>
bump msrv to 1.85.0 for getrandom</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/b9a31578faa0ebae2c7144e1f415ee60d69ee011"><code>b9a3157</code></a>
bump msrv to 1.81.0</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/2a0a7a31175d078516d9ce3e095e54f1e5581852"><code>2a0a7a3</code></a>
force an earlier nightly for miri</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/a6e0aa10dac8e861e383eced0d9f8f66d11e788e"><code>a6e0aa1</code></a>
update rand to 0.10</li>
<li><a
href="https://github.com/uuid-rs/uuid/commit/576d47bc63c56b19c6535e14da17a9c403ab7844"><code>576d47b</code></a>
update getrandom to 0.4</li>
<li>Additional commits viewable in <a
href="https://github.com/uuid-rs/uuid/compare/v1.20.0...v1.21.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=cargo&previous-version=1.20.0&new-version=1.21.0)](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 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?


## Rationale for this change

Keep up to date. I saw when looking at
apache#20325 we were still at
0.12.4 (and are reading metadata per range). This can bring a (probably
minor, as metadata reading should be pretty cheap) improvement (I
couldn't see an improvement locally).

## What changes are included in this PR?

Update to 0.12.5. 
Note it still does a metadata request, but only a single one per
`get_ranges`.

## Are these changes tested?

## 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 add the `api
change` label.
-->
…0364)

## 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. For example
`Closes apache#123` indicates that this PR will close issue apache#123.
-->

- Closes #.

## 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.
-->

This PR optimizes the `array_distinct` function by batching value
conversions and utilizing a `HashSet` for deduplication.
It is a follow-up to apache#20243.

## What changes are included in this PR?

This PR optimizes `array_distinct` by:
1. Converting all values to rows in a single batch rather than
individually.
2. Using a HashSet to deduplicate values for each list.

### Benchmark
```
group                                main                                   optimized
-----                                ----                                   ---------
array_distinct/high_duplicate/10     2.66   855.1±28.18µs        ? ?/sec    1.00    321.9±8.70µs        ? ?/sec
array_distinct/high_duplicate/100    2.21      6.4±0.13ms        ? ?/sec    1.00      2.9±0.09ms        ? ?/sec
array_distinct/high_duplicate/50     2.14      3.2±0.05ms        ? ?/sec    1.00  1478.3±41.90µs        ? ?/sec
array_distinct/low_duplicate/10      2.73  1017.3±44.67µs        ? ?/sec    1.00   372.5±17.33µs        ? ?/sec
array_distinct/low_duplicate/100     1.32      4.4±0.13ms        ? ?/sec    1.00      3.3±0.15ms        ? ?/sec
array_distinct/low_duplicate/50      1.55      2.6±0.06ms        ? ?/sec    1.00  1689.0±94.15µs        ? ?/sec
```

<!--
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

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

Yes, unit tests exist and pass.

## Are there any user-facing changes?

Yes, there is a slight change in the output order. This new behavior is
consistent with `array_union` and `array_intersect`, where the output
order is more intuitive as it preserves the original order of elements
in the array.

<!--
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 add the `api
change` label.
-->

---------

Co-authored-by: lyne7-sc <lilinfeng0310@gmail.com>
@github-actions github-actions bot added documentation Improvements or additions to documentation development-process Related to development process of DataFusion logical-expr Logical plan and expressions core Core DataFusion crate sqllogictest SQL Logic Tests (.slt) catalog Related to the catalog crate labels Feb 20, 2026
@github-actions github-actions bot added common Related to common crate execution Related to the execution crate proto Related to proto crate functions Changes to functions implementation ffi Changes to the ffi crate spark labels Feb 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

catalog Related to the catalog crate common Related to common crate core Core DataFusion crate development-process Related to development process of DataFusion documentation Improvements or additions to documentation execution Related to the execution crate ffi Changes to the ffi crate functions Changes to functions implementation logical-expr Logical plan and expressions proto Related to proto crate spark sqllogictest SQL Logic Tests (.slt)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants