Commit Graph
478 Commits
Author SHA1 Message Date
lancedb-gatefixer[bot] 624defd109 fix: preserve sliced child validity during struct merge (#4261)
## Root cause

The pinned Lance Arrow crate rebuilt a sliced struct child with its
original Arrow offset but supplied a validity bitmap containing only the
visible rows. Arrow requires the bitmap to cover the offset as well, so
filtered vector searches involving nullable nested fields could panic
with `null_bit_buffer size too small`.

## Fix

- Carry an offset-aligned validity bitmap when propagating parent nulls
to a sliced child.
- Vendor the pinned `lance-arrow` crate until a Lance release includes
the fix; include it in Maturin source distributions.
- Add unit regressions for sliced children and parent bitmaps, plus a
record-batch merge regression.

## Validation

- The issue's 8,600-row Python reproducer completes its filtered flat
dot search and returns 8,448 rows without a panic.
- The targeted Rust merge regression and two focused Python query tests
pass.
- Rust formatting, Ruff formatting and lint, the vendored crate tests,
and the workspace Cargo checks passed. The Maturin source archive
includes the patched crate.

Fixes #4260

<!-- lance-gatekeeper-fix:v1 agent=e6045f701d9b708ee26528ba36353aba
generation=1 -->

---------

Co-authored-by: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com>
2026-10-23 01:26:28 +08:00
Lance Release 9f0f6400bc Bump version: 0.41.0-beta.12 → 0.41.0-beta.13 2026-10-22 11:53:47 +00:00
Xuanwo a5079b0fc6 chore: update lance dependency to v15.0.0-beta.1 (#4628) 2026-10-22 19:41:40 +08:00
d97df0c82b fix: update trust-store pins for the eMudhra CA compromise (#4624)
Cargo.lock: webpki-root-certs 1.0.10; webpki-roots 1.0.10 and
rustls-webpki 0.103.16 are already current.
docs/web-tests/rs/Cargo.lock: rustls-webpki 0.103.16. python/uv.lock:
certifi 2026.10.19, the only entry that changes.

The root crate drops the root CA whose intermediates were compromised
(Mozilla bug 2083449), and rustls-webpki 0.103.16 rejects chains that
carry the compromised eMudhra intermediate keys. certifi 2026.10.19 is
the release the certifi advisory names as fixed: it drops the same root
and keeps the issuer's other roots, so HTTPS connections that chain to
them keep working. Relative to the previous 2026.6.17 pin it also adds
Telia EC and RSA TLS Root CA v3 and SECOM TLS ECC and RSA Root CA 2024
and drops Atos TrustedRoot 2011.

The webpki-root-certs entry is written by hand with the crates.io
checksum.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Co-authored-by: Esteban Gutierrez <esteban@lancedb.com>
Co-authored-by: Claude Opus 5.1 <noreply@anthropic.com>
2026-10-21 17:11:36 -05:00
Lance Release 1480a9ff57 Bump version: 0.41.0-beta.11 → 0.41.0-beta.12 2026-10-21 10:48:42 +00:00
Yang Cen 22b15d4df0 chore: update lance dependency to v14.0.0-beta.23 (#4616)
Update the Rust workspace and Java lance-core from beta.22 to [Lance
v14.0.0-beta.23](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.23),
including the supplied-sample IVF training API from
lance-format/lance#10188. Non-Lance lockfile entries match current main;
no compatibility code changes are required.

Validation on `f591f5d5`: full-workspace Clippy (`--tests --all-features
-- -D warnings`), Rust formatting, and Java checkstyle passed locally.
The beta.23
[POM](https://maven.lance.org/org/lance/lance-core/14.0.0-beta.23/lance-core-14.0.0-beta.23.pom)
and
[JAR](https://maven.lance.org/org/lance/lance-core/14.0.0-beta.23/lance-core-14.0.0-beta.23.jar)
are now published and both return HTTP 200. The review reproducer (`cd
java && ./mvnw -U -q test -pl lancedb-core -Dspotless.skip=true`) passes
all 37 tests with zero failures or skips; JUnit classpaths confirm
beta.23 was loaded. [Java CI attempt
2](https://github.com/lancedb/lancedb/actions/runs/39568468567/attempts/2)
also passes, resolving the Java dependency publication finding.
2026-10-21 18:45:57 +08:00
Lance Release 46ccbe4e2c Bump version: 0.41.0-beta.10 → 0.41.0-beta.11 2026-10-21 08:21:13 +00:00
Xuanwo b00061fb28 chore: update lance dependency to v14.0.0-beta.22 (#4614)
Pin the Rust workspace and Java lance-core dependency to [Lance
v14.0.0-beta.22](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.22),
including managed data file parts and descriptor reuse from
lance-format/lance#10176. This enables the next LanceDB preview release
to provide the tagged dependency needed by lancedb/sophon#8898. No
compatibility code changes are required.

Update rustls-webpki to 0.103.16 and webpki-roots to 1.0.10 in the
lockfile to resolve the two TLS advisories blocking dependency CI
(RUSTSEC-2026-0382 and RUSTSEC-2026-0381), without adding advisory
exceptions.

The Java dependency availability blocker is resolved: both the beta.22
POM and JAR return HTTP 200 from maven.lance.org. On `ea043bf93`, the
review reproducer (`cd java && ./mvnw -U -q test -pl lancedb-core
-Dspotless.skip=true`) passes all 37 tests, and [Java CI attempt
2](https://github.com/lancedb/lancedb/actions/runs/39556336205/attempts/2)
passes.
2026-10-21 16:12:12 +08:00
Lance Release 9e54c8cf27 Bump version: 0.41.0-beta.9 → 0.41.0-beta.10 2026-10-20 17:06:59 +00:00
Lance Release 6507615a6f Bump version: 0.41.0-beta.8 → 0.41.0-beta.9 2026-10-19 21:23:24 +00:00
LanceDB RobotandLuQQiu 1befe331d2 chore: update lance dependency to v14.0.0-beta.21 (#4590)
Updates the Rust workspace Lance dependencies and Java lance-core from
v14.0.0-beta.19 to
[v14.0.0-beta.21](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.21),
refreshing Cargo.lock. No compatibility changes were required.

Validation: `cargo clippy --quiet --workspace --tests --all-features --
-D warnings`, `cargo fmt --all --quiet`, and `git diff --check`.

Co-authored-by: LuQQiu <luqiujob@gmail.com>
2026-10-19 14:21:42 -07:00
Lance Release c54b4027ef Bump version: 0.41.0-beta.7 → 0.41.0-beta.8 2026-10-18 18:15:51 +00:00
Weston Pace ca275b6d0e ci: ignore yanked zip, update rustls, remove unneeded deny rules (#4560)
Old versions of the zip crate have been yanked due to some rather
serious vulnerabilities. However, it is a transitive dependency via
`candle` and they have not yet released a patch.

For now I think the best course of action is to continue to ship,
knowing that we will need to address this issue as soon as candle
upgrades.

I also updated rustls since we have passed the 48 hour mark and I
removed all deny exclusions that were no longer needed.
2026-10-16 15:05:29 -07:00
LanceDB RobotandDaniel Rammer 91541408e7 chore: update lance dependency to v14.0.0-beta.19 (#4562)
Updates the Rust workspace Lance dependencies and Java lance-core from
14.0.0-beta.18 to
[v14.0.0-beta.19](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.19),
refreshing Cargo.lock. No compatibility fixes were required.

Validation: `cargo clippy --quiet --workspace --tests --all-features --
-D warnings`, `cargo fmt --all --quiet`, and `git diff --check`.

Co-authored-by: Daniel Rammer <hamersaw@protonmail.com>
2026-10-16 15:48:19 -05:00
Lance Release 7b3ba4c437 Bump version: 0.41.0-beta.6 → 0.41.0-beta.7 2026-10-15 22:35:51 +00:00
d47183953c chore: update lance dependency to v14.0.0-beta.18 (#4552)
Updates the Rust workspace dependencies and Java lance-core to [Lance
v14.0.0-beta.18](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.18).
Mirrors Lance's pinned object_store patch to support the multipart write
mode API required by this release.

Validation: `cargo clippy --quiet --workspace --tests --all-features --
-D warnings`, `cargo fmt --all --quiet`, and `git diff --check` passed.

---------

Co-authored-by: Lu Qiu <luqiujob@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Yang Cen <bubble-cal@outlook.com>
2026-10-15 14:53:48 -07:00
lancedb-gatefixer[bot] 8bb04d0fee fix: preserve remote projection column order (#4292) 2026-10-14 10:04:45 -07:00
Colin Patrick McCabe 6cc4919c3c feat: add an authorization API (#4363)
Add an authorization API to the LanceDB catalog. This is an API that can
be used to bind access control lists (ACLs) to individual catalog
objects. It can also be used to manage server-side roles, and introspect
principals and groups. The new API is implemented in both the Rust,
Python, and async Python styles and includes list_acls, add_acl,
delete_acl, list_role_bindings, add_role_binding, delete_role_binding,
get_principal, and get_group. This API implements the design principle
of forwards-compatibility. So unknown privilege, object, and subject
types do not cause errors, but are be supported as best as possible in
the library.
2026-10-13 19:59:25 -07:00
1ea47a5055 chore: update lance dependency to v14.0.0-beta.15 (#4527)
Updates the Rust workspace Lance dependencies, Cargo lockfile, and Java
lance-core dependency to
[v14.0.0-beta.15](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.15).
No compatibility fixes were required. Validation passed: `cargo clippy
--quiet --workspace --tests --all-features -- -D warnings`, `cargo fmt
--all --quiet`, and `git diff --check`.

---------

Co-authored-by: Daniel Rammer <hamersaw@protonmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-13 11:10:55 -05:00
Lance Release 0a988a40ac Bump version: 0.41.0-beta.5 → 0.41.0-beta.6 2026-10-12 11:38:01 +00:00
Lance Release f32e9ab26a Bump version: 0.41.0-beta.4 → 0.41.0-beta.5 2026-10-12 06:04:07 +00:00
LanceDB Robot e8b4d95938 chore: update lance dependency to v14.0.0-beta.13 (#4523)
Updates Rust workspace Lance dependencies and Java lance-core from
v14.0.0-beta.11 to
[v14.0.0-beta.13](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.13),
with the Cargo lockfile refreshed. No compatibility fixes were required.

Validation: `cargo clippy --quiet --workspace --tests --all-features --
-D warnings`, `cargo fmt --all --quiet`, and `git diff --check` passed.
2026-10-11 23:02:42 -07:00
Lance Release 142d032cf1 Bump version: 0.41.0-beta.3 → 0.41.0-beta.4 2026-10-11 06:35:18 +00:00
LanceDB Robot f0bfb89d9c chore: update lance dependency to v14.0.0-beta.11 (#4518)
Updates the Rust workspace Lance dependencies, Cargo lockfile, and Java
lance-core to
[v14.0.0-beta.11](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.11).
Adapts the LSM resident-index guards to Lance's query-based index API
and adds regression coverage for index presence and type checks.

Validation: workspace Clippy with all features and warnings denied, Rust
formatting, and targeted LSM query unit tests.
2026-10-10 23:33:56 -07:00
Will JonesandClaude Opus 5.5 4b20906eb3 fix: bump vulnerable Rust deps and drop legacy rustls 0.21 (#4502)
## Summary

Fixes the Dependabot alerts for Rust crates that have a patched release.

- `Cargo.lock`: aws-smithy-json 0.62.5 → 0.62.7, quinn-proto 0.11.14 →
0.11.19, xxhash-rust 0.8.15 → 0.8.19.
- `docs/web-tests/rs/Cargo.lock`: rustls 0.23.35 → 0.23.45,
rustls-webpki 0.103.13 → 0.103.15, serde_with 3.16.1 → 3.22.0, rand
0.8.5 → 0.8.8 and 0.9.2 → 0.9.5, xxhash-rust 0.8.15 → 0.8.19.
- `rust/lancedb/Cargo.toml`: the AWS SDK crates' default features
include the legacy `rustls` feature, which pulls in rustls 0.21 and the
vulnerable rustls-webpki 0.101.7 via hyper 0.14.
`aws-sdk-bedrockruntime` (behind the optional `bedrock` feature) and the
`aws-sdk-s3`/`dynamodb`/`kms` dev-dependencies now use `default-features
= false` with `default-https-client` + `rt-tokio`, the same rustls 0.23
client `aws-config` already uses. Minimum versions are raised to the
first releases that have `default-https-client`. This removes rustls
0.21, rustls-webpki 0.101, hyper 0.14 and h2 0.3 from the lockfile.

Not fixed: fast-float 0.2.0 has no patched release. It comes from
polars-arrow via the optional `polars` feature, pinned to `<0.40`;
removing it needs a polars upgrade.

## Merge Risk

**Door:** two-way; lockfile and dependency-feature changes only.
**Blast Radius:** `bedrock` embedding function's HTTP client, and
S3/DynamoDB/KMS integration tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:53:40 -07:00
Will JonesandClaude Opus 5.5 b1429ffa68 fix: use aws-lc-rs instead of ring for remote HTTP and gRPC TLS (#4504)
## Summary

LanceDB's remote HTTP client (reqwest) and gRPC client (tonic) used
rustls with the `ring` crypto provider, while the AWS SDK and
object_store use aws-lc-rs. This moves both clients to aws-lc-rs:

- `tonic`: `tls-ring` → `tls-aws-lc`.
- `reqwest`: 0.12 → 0.13. reqwest 0.12 has no aws-lc-rs feature; 0.13's
`rustls` feature uses it. 0.13 was already in the lockfile through
object_store. No code changes were needed.
- `macos-system-configuration` is replaced by its 0.13 name,
`system-proxy`, which also reads the system proxy on Windows.
- `query` is now an opt-in feature in 0.13; it's used for request query
parameters.
- Certificate verification moves from `rustls-native-certs` to
`rustls-platform-verifier`, which uses the OS verifier on macOS and
Windows.

`ring` is still compiled in, because `lance-namespace-impls` and
`lance-namespace-reqwest-client` enable it through reqwest 0.12
(lance-format/lance#9855, lance-format/lance-namespace#369). Both
clients here pick aws-lc-rs explicitly, so they don't depend on which
providers are compiled in.

## Evidence

A temporary example that connects the remote client to real HTTPS hosts:

```
https://example.com:         Http error: ... 404 Not Found: <!doctype html>...   # TLS handshake OK
https://expired.badssl.com:  Hit retry limit ... connect_failures=3/3            # bad cert rejected
```

## Merge Risk

**Door:** two-way; dependency feature changes only.
**Blast Radius:** `remote` TLS and certificate verification (Python,
Node, and Rust LanceDB Cloud clients).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 19:36:49 -07:00
Lance Release 55ca56d4e2 Bump version: 0.41.0-beta.2 → 0.41.0-beta.3 2026-10-09 21:13:42 +00:00
Jack Ye f305a05fd4 fix: preserve adaptive IVF probe defaults (#4168)
Keep IVF probe fields unset by default so Lance supplies adaptive
behavior. Preserve `nprobes`, `minimum_nprobes`, and `maximum_nprobes`
independently through Rust, Python, namespace, and remote request
construction, with compatibility fields serialized only when explicitly
configured.

The final Rust namespace and LSM propagation update depends on the Lance
release containing lance-format/lance#9184.
2026-10-09 12:45:02 -07:00
Lance Release f85c235d48 Bump version: 0.41.0-beta.1 → 0.41.0-beta.2 2026-10-09 18:21:31 +00:00
Lance Release ae50d84e34 Bump version: 0.41.0-beta.0 → 0.41.0-beta.1 2026-10-09 00:49:43 +00:00
32436a7ad7 chore: update lance dependency to v14.0.0-beta.7 (#4481)
Updates the Rust workspace Lance dependencies and Java lance-core from
14.0.0-beta.1 to
[v14.0.0-beta.6](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.6),
and refreshes Cargo.lock. No compatibility fixes were required.

Validation passed: `cargo clippy --quiet --workspace --tests
--all-features -- -D warnings`, `cargo fmt --all --quiet`, and `git diff
--check`.

---------

Co-authored-by: Daniel Rammer <hamersaw@protonmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-08 18:47:33 -05:00
Lance Release becbda70dd Bump version: 0.40.0-beta.13 → 0.41.0-beta.0 2026-10-07 14:47:37 +00:00
LanceDB RobotandWyatt Alt 17e9a657e6 chore: update lance dependency to v14.0.0-beta.1 (#4445)
Updates the Rust workspace Lance dependencies, Cargo lockfile, and Java
lance-core to
[v14.0.0-beta.1](https://github.com/lance-format/lance/releases/tag/v14.0.0-beta.1).
No compatibility fixes were required.

Validation passed: `cargo clippy --quiet --workspace --tests
--all-features -- -D warnings`, `cargo fmt --all --quiet`, and `git diff
--check`.

---------

Co-authored-by: Wyatt Alt <wyatt.alt@gmail.com>
2026-10-06 08:34:45 -07:00
Lance Release 81d52a98f8 Bump version: 0.40.0-beta.12 → 0.40.0-beta.13 2026-10-06 04:36:52 +00:00
dependabot[bot] f72779ebb5 build(deps): bump the rust-minor-patch group across 1 directory with 7 updates (#4355)
Bumps the rust-minor-patch group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [aws-smithy-types](https://github.com/smithy-lang/smithy-rs) | `1.6.3`
| `1.6.4` |
| [object_store](https://github.com/apache/arrow-rs-object-store) |
`0.14.1` | `0.14.2` |
| [serde_with](https://github.com/jonasbb/serde_with) | `3.23.0` |
`3.24.0` |
| [napi](https://github.com/napi-rs/napi-rs) | `3.12.2` | `3.12.5` |
| [napi-derive](https://github.com/napi-rs/napi-rs) | `3.6.5` | `3.6.9`
|
| [napi-build](https://github.com/napi-rs/napi-rs) | `2.4.2` | `2.5.0` |
| [arc-swap](https://github.com/vorner/arc-swap) | `1.9.1` | `1.9.2` |


Updates `aws-smithy-types` from 1.6.3 to 1.6.4
<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 />

Updates `object_store` from 0.14.1 to 0.14.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/apache/arrow-rs-object-store/releases">object_store's
releases</a>.</em></p>
<blockquote>
<h2>object_store v0.14.2</h2>
<!-- raw HTML omitted -->
<h1>Changelog</h1>
<h2><a
href="https://github.com/apache/arrow-rs-object-store/tree/v0.14.2">v0.14.2</a>
(2026-09-11)</h2>
<p><a
href="https://github.com/apache/arrow-rs-object-store/compare/v0.14.1...v0.14.2">Full
Changelog</a></p>
<p><strong>Implemented enhancements:</strong></p>
<ul>
<li>Implement <code>Clone</code> for <code>MicrosoftAzure</code> <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/824">#824</a></li>
<li>Support URLs for jurisdiction-restricted buckets on R2 <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/814">#814</a></li>
<li>Lightweight DNS cache with shuffle to prevent DNS flooding <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/726">#726</a></li>
<li>Allow presigning object_store multipart uploads <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/271">#271</a></li>
<li>Allow specifying <code>Content-Type</code> when signing object_store
PUT requests <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/270">#270</a></li>
</ul>
<p><strong>Fixed bugs:</strong></p>
<ul>
<li>Incomplete ASF license header in <code>src/client/s3.rs</code>
(caused -1 vote on 0.14.2 RC1) <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/853">#853</a></li>
<li>WriteMultipart::finish should abort after part upload failure <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/818">#818</a></li>
<li>The 1.85 MSRV is inaccurate with all features <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/811">#811</a></li>
<li>When the backend service returns an HTTP 500, the object store
panics <a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/414">#414</a></li>
</ul>
<p><strong>Documentation updates:</strong></p>
<ul>
<li>Docs: point users uploading large objects at the multipart API <a
href="https://redirect.github.com/apache/arrow-rs-object-store/pull/839">#839</a>
(<a href="https://github.com/alamb">alamb</a>)</li>
<li>[object-store]: update release schedule <a
href="https://redirect.github.com/apache/arrow-rs-object-store/pull/834">#834</a>
(<a href="https://github.com/alamb">alamb</a>)</li>
<li>Add doc example for multipart upload to
<code>GoogleCloudStorage::create_multipart</code> <a
href="https://redirect.github.com/apache/arrow-rs-object-store/pull/803">#803</a>
(<a href="https://github.com/alamb">alamb</a>)</li>
<li>Add doc example for multipart upload to
<code>MicrosoftAzure::create_multipart</code> <a
href="https://redirect.github.com/apache/arrow-rs-object-store/pull/802">#802</a>
(<a href="https://github.com/alamb">alamb</a>)</li>
<li>Add doc example for multipart upload to AmazonS3::create_multipart
<a
href="https://redirect.github.com/apache/arrow-rs-object-store/pull/801">#801</a>
(<a href="https://github.com/alamb">alamb</a>)</li>
</ul>
<p><strong>Closed issues:</strong></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/apache/arrow-rs-object-store/blob/main/CHANGELOG-old.md">object_store's
changelog</a>.</em></p>
<blockquote>
<!-- raw HTML omitted -->
<h1>Historical Changelog</h1>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/279572ea60f3a7a6e5237e066a6f4a35eee611e0"><code>279572e</code></a>
Update CHANGELOG for latest main (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/855">#855</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/4ff7d048073c07bcc1f1dca74436245b2ba20dda"><code>4ff7d04</code></a>
Restore missing first line of ASF license header in src/client/s3.rs (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/854">#854</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/25fa079c41fecb8011d5b8c3019f20e09c9b0c74"><code>25fa079</code></a>
Update version to 0.14.2 and add CHANGELOG (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/850">#850</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/c37db72b92b78608291c1b33feb79bb5bb6d2d1c"><code>c37db72</code></a>
feat: retry failed multipart part uploads (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/849">#849</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/135984fdf91f813c48c47b6288586d9b0e205164"><code>135984f</code></a>
Add doc hints pointing large-object uploads at the multipart API (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/839">#839</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/b07471e2bc341278f86e30cf80a850d56cbe2c67"><code>b07471e</code></a>
[object-store]: update release schedule (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/834">#834</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/978fb48b9ea6ebe3f8f4833f656e793cde79ab15"><code>978fb48</code></a>
Fix MSRV violation in <code>parse.rs</code> test, check
<code>--all-targets</code> in MSRV CI (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/837">#837</a>)</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/e2a49349622aa7ad5db12b107a557d957ac01241"><code>e2a4934</code></a>
Speed up MSRV CI check by installing cargo-msrv via
taiki-e/install-action (#...</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/e28807de7338abebf14ecf2ab959294cb3096d83"><code>e28807d</code></a>
feat: presigned URLs with extra query params and signed headers
(SignedUrlOpt...</li>
<li><a
href="https://github.com/apache/arrow-rs-object-store/commit/5c743637e97d2f3417b6fd54532bb1223c6547c1"><code>5c74363</code></a>
Restore UnwindSafe/RefUnwindSafe on ClientOptions by bounding
DnsResolver (<a
href="https://redirect.github.com/apache/arrow-rs-object-store/issues/836">#836</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/apache/arrow-rs-object-store/compare/v0.14.1...v0.14.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `serde_with` from 3.23.0 to 3.24.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/jonasbb/serde_with/releases">serde_with's
releases</a>.</em></p>
<blockquote>
<h2>serde_with v3.24.0</h2>
<h3>Added</h3>
<ul>
<li>Implement <code>JsonSchemaAs</code> for
<code>NoneAsEmptyString</code>, so fields using it compile with the
<code>schemars_*</code> features (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1014">#1014</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Make <code>with_prefix!</code> and <code>with_suffix!</code>
available with the <code>alloc</code> feature, instead of only with
<code>std</code> (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1008">#1008</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Handle potential panics in deserialization of chrono and time
DateTimes.
This was privately reported by <a
href="https://github.com/NotAFlightRisk"><code>@​NotAFlightRisk</code></a>.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/jonasbb/serde_with/commit/35ac84c8faf34d6822991bbf2397056994c9208b"><code>35ac84c</code></a>
Bump version to 3.24 (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1016">#1016</a>)</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/7b8e561c709544b417b3c0f05f3c57a753e86417"><code>7b8e561</code></a>
Bump version to 3.24</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/6e576c8d5cc5f31efd26cf783d76eac6607d784e"><code>6e576c8</code></a>
Bump the github-actions group with 2 updates (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1012">#1012</a>)</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/7b1814b5cf8f2ce4ef7844105ab26760371af0cf"><code>7b1814b</code></a>
Add schemars support for NoneAsEmptyString (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1014">#1014</a>)</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/92eeedd1e5be0f176bd9a0532eb8ab1503396bb2"><code>92eeedd</code></a>
Handle potential panic during deserialization for large datetimes (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1015">#1015</a>)</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/3404642aae13a3dfcf4ea0f47749f759b36a85db"><code>3404642</code></a>
Handle potential panic during deserialization for large datetimes</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/c7073b98f150d60c22e1ccdb49f1c7151dd8595f"><code>c7073b9</code></a>
Add schemars support for NoneAsEmptyString</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/6b32290267fa18064894e2fa67bf4bed7fb4bd5f"><code>6b32290</code></a>
Run test with only the alloc feature (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1013">#1013</a>)</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/3361c69817d02b079b15f71d1281f573594cc948"><code>3361c69</code></a>
Run test with only the alloc feature</li>
<li><a
href="https://github.com/jonasbb/serde_with/commit/b43bb81cd8f02f06c2bf4bcd057c83e71442a515"><code>b43bb81</code></a>
Reduce required feature for with_{prefix,suffix} from std to alloc (<a
href="https://redirect.github.com/jonasbb/serde_with/issues/1008">#1008</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/jonasbb/serde_with/compare/v3.23.0...v3.24.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi` from 3.12.2 to 3.12.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/napi-rs/napi-rs/releases">napi's
releases</a>.</em></p>
<blockquote>
<h2>napi-v3.12.5</h2>
<h3>Fixed</h3>
<ul>
<li>fatal_exception noop in optimized builds (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3509">#3509</a>)</li>
</ul>
<h2>napi-v3.12.4</h2>
<h3>Security</h3>
<ul>
<li><code>Object::unwrap</code> and <code>Object::remove_wrapped</code>
(and the deprecated <code>Env::unwrap</code> /
<code>Env::drop_wrapped</code>) read a <code>TypeId</code> out of a
payload that is not a <code>TaggedObject</code>, giving a heap
out-of-bounds read and a JavaScript-forgeable out-of-bounds write;
payload provenance is now validated before dereferencing. See <a
href="https://github.com/napi-rs/napi-rs/security/advisories/GHSA-rhpj-pggq-896v">GHSA-rhpj-pggq-896v</a>,
fixed in <a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3506">#3506</a>.</li>
<li>The serde deserializer reached <code>unreachable!()</code> on
ordinary JavaScript values and aborted the process instead of returning
an error. See <a
href="https://github.com/napi-rs/napi-rs/security/advisories/GHSA-f334-75xc-qxv3">GHSA-f334-75xc-qxv3</a>,
fixed in <a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3507">#3507</a>.</li>
<li><code>ArrayBuffer::from_external</code>,
<code>TypedArraySlice::from_external</code> and
<code>Uint8ClampedSlice::from_external</code> (plus the compat-mode
<code>Env::create_arraybuffer_with_borrowed_data</code>) built their
slice from freed memory on runtimes without external buffers. See <a
href="https://github.com/napi-rs/napi-rs/security/advisories/GHSA-32mm-r9wp-hrvc">GHSA-32mm-r9wp-hrvc</a>,
fixed in <a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3503">#3503</a>.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li><em>(napi)</em> return errors from the serde deserializer for
unexpected JS value shapes (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3507">#3507</a>)</li>
<li><em>(napi)</em> validate wrapped payload provenance in
Object::unwrap/remove_wrapped (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3506">#3506</a>)</li>
<li><em>(napi)</em> point from_external slices at the engine-owned copy
after finalize reclaims the source (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3503">#3503</a>)</li>
</ul>
<h2>napi-v3.12.3</h2>
<h3>Fixed</h3>
<ul>
<li>CurrentThread waker-stack deadlocks and threadless-wasm Buffer
detachment (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3489">#3489</a>)</li>
<li><em>(napi)</em> catch panics in closure trampolines instead of
aborting (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3473">#3473</a>)</li>
</ul>
<h3>Other</h3>
<ul>
<li><em>(napi)</em> keep anyhow error cause when converting (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3477">#3477</a>)</li>
<li><em>(napi)</em> outline threadsafe callback dispatch (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3465">#3465</a>)</li>
<li><em>(napi)</em> outline class instance construction (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3464">#3464</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/43100baf28a3e5709641e35f892be4da5d62dcb2"><code>43100ba</code></a>
chore: release (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3508">#3508</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/bb7b75a7d53b0757f99813c7fef0537cef044adf"><code>bb7b75a</code></a>
chore(release): publish</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/89d7a0b3636b4454265363dab58df471030b4f85"><code>89d7a0b</code></a>
chore(deps): update dependency oxfmt to ^0.68.0 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3519">#3519</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/55545910c2487da38453e6171330e8fc9133213c"><code>5554591</code></a>
fix(cli): rate-limit failed incarnation probes and let reconciliation
tests i...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/6d10d826c34f5d0009eb1ab47efaa4a2e34f4555"><code>6d10d82</code></a>
feat(cli): make the deferred workerd loader usable by host-driven addons
(<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3520">#3520</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/a1bcecbd1bef2f51f1047f5800d5a312eb2eba3b"><code>a1bcecb</code></a>
feat(cli): add <code>napi.wasm.threadlessInitialMemory</code> for
threadless WASI loader...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/0999babc1e37ce869b79f59db14f9eb12f6647df"><code>0999bab</code></a>
feat(cli): export <code>__napiBindingTarget</code> from generated
binding loaders (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3515">#3515</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/30ea504c3d65e1cb178d3124068257d8df8f3835"><code>30ea504</code></a>
fix(cli): bound symlink-ancestor reconciliation guards to the anchor's
parent...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/ae8f34a8dc5f629b53d136442e8f614f2d3c17b6"><code>ae8f34a</code></a>
fix(cli): run the wasm env cleanup barrier on a raw emnapi
`Context.destroy()...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/ccd314bbb5201182311b74dddd61f60b323318f4"><code>ccd314b</code></a>
fix(cli): never wedge reconciliation locks when host identity probes
fail (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3">#3</a>...</li>
<li>Additional commits viewable in <a
href="https://github.com/napi-rs/napi-rs/compare/napi-v3.12.2...napi-v3.12.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-derive` from 3.6.5 to 3.6.9
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/napi-rs/napi-rs/releases">napi-derive's
releases</a>.</em></p>
<blockquote>
<h2>napi-derive-v3.6.9</h2>
<h3>Other</h3>
<ul>
<li>update Cargo.toml dependencies</li>
</ul>
<h2>napi-derive-v3.6.8</h2>
<h3>Fixed</h3>
<ul>
<li><em>(napi)</em> guard AsyncTask completion against env teardown (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3536">#3536</a>)</li>
</ul>
<h2>napi-derive-v3.6.7</h2>
<h3>Other</h3>
<ul>
<li>update Cargo.toml dependencies</li>
</ul>
<h2>napi-derive-v3.6.6</h2>
<h3>Other</h3>
<ul>
<li>update Cargo.toml dependencies</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/2763e12efc855748485129952a6ccb97ac991c06"><code>2763e12</code></a>
chore: release (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3538">#3538</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/5ae5cf604809ed6b9868c8e67b201bc9eb68d9bf"><code>5ae5cf6</code></a>
chore(release): publish</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/0da138ec836906da5bc3a996521299e1d284bdda"><code>0da138e</code></a>
feat(cli): self-sign OpenHarmony artifacts with --ohos-sign (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3539">#3539</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/2499a6311148492bc01ae316621b514a9345e4e7"><code>2499a63</code></a>
feat(async-runtime): offer the MultiThread flavor on
wasm32-wasip1-threads (#...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/886bd071972e09010ee901d1a1bb669a26d3e0dc"><code>886bd07</code></a>
chore(deps): update dependency oxc-parser to ^0.151.0 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3542">#3542</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/edb0a295a14371b2f943c2a89bacf385eb61a038"><code>edb0a29</code></a>
fix(napi): validate native payload provenance for External and instance
data ...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/38162bb0eb324ae24b402982bad3d4ef3f24c90a"><code>38162bb</code></a>
chore: release (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3529">#3529</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/ec3d8ead66c18e022d2e3fb6832e52e5204ffcc3"><code>ec3d8ea</code></a>
fix(napi): guard AsyncTask completion against env teardown (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3536">#3536</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/96ed2672820b5468b6a451080fc27e6eef594d3d"><code>96ed267</code></a>
chore(deps): update release-plz/action action to v0.5.139 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3537">#3537</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/b2c9f3b610cb167d2c05b8d6c748c120926ffd73"><code>b2c9f3b</code></a>
chore(deps): update release-plz/action action to v0.5.138 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3533">#3533</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/napi-rs/napi-rs/compare/napi-derive-v3.6.5...napi-derive-v3.6.9">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-build` from 2.4.2 to 2.5.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/napi-rs/napi-rs/releases">napi-build's
releases</a>.</em></p>
<blockquote>
<h2>napi-build-v2.5.0</h2>
<h3>Added</h3>
<ul>
<li><em>(async-runtime)</em> offer the MultiThread flavor on
wasm32-wasip1-threads (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3541">#3541</a>)</li>
</ul>
<h2>napi-build-v2.4.4</h2>
<h3>Fixed</h3>
<ul>
<li><em>(napi)</em> guard AsyncTask completion against env teardown (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3536">#3536</a>)</li>
</ul>
<h2>napi-build-v2.4.3</h2>
<h3>Fixed</h3>
<ul>
<li><em>(cli)</em> drain outstanding async work before disposing a WASI
binding (<a
href="https://redirect.github.com/napi-rs/napi-rs/pull/3528">#3528</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/2763e12efc855748485129952a6ccb97ac991c06"><code>2763e12</code></a>
chore: release (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3538">#3538</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/5ae5cf604809ed6b9868c8e67b201bc9eb68d9bf"><code>5ae5cf6</code></a>
chore(release): publish</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/0da138ec836906da5bc3a996521299e1d284bdda"><code>0da138e</code></a>
feat(cli): self-sign OpenHarmony artifacts with --ohos-sign (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3539">#3539</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/2499a6311148492bc01ae316621b514a9345e4e7"><code>2499a63</code></a>
feat(async-runtime): offer the MultiThread flavor on
wasm32-wasip1-threads (#...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/886bd071972e09010ee901d1a1bb669a26d3e0dc"><code>886bd07</code></a>
chore(deps): update dependency oxc-parser to ^0.151.0 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3542">#3542</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/edb0a295a14371b2f943c2a89bacf385eb61a038"><code>edb0a29</code></a>
fix(napi): validate native payload provenance for External and instance
data ...</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/38162bb0eb324ae24b402982bad3d4ef3f24c90a"><code>38162bb</code></a>
chore: release (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3529">#3529</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/ec3d8ead66c18e022d2e3fb6832e52e5204ffcc3"><code>ec3d8ea</code></a>
fix(napi): guard AsyncTask completion against env teardown (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3536">#3536</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/96ed2672820b5468b6a451080fc27e6eef594d3d"><code>96ed267</code></a>
chore(deps): update release-plz/action action to v0.5.139 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3537">#3537</a>)</li>
<li><a
href="https://github.com/napi-rs/napi-rs/commit/b2c9f3b610cb167d2c05b8d6c748c120926ffd73"><code>b2c9f3b</code></a>
chore(deps): update release-plz/action action to v0.5.138 (<a
href="https://redirect.github.com/napi-rs/napi-rs/issues/3533">#3533</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/napi-rs/napi-rs/compare/napi-build-v2.4.2...napi-build-v2.5.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `arc-swap` from 1.9.1 to 1.9.2
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md">arc-swap's
changelog</a>.</em></p>
<blockquote>
<h1>1.9.2</h1>
<ul>
<li>Document RefCnt must not panic (<a
href="https://redirect.github.com/vorner/arc-swap/issues/208">#208</a>).</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/vorner/arc-swap/commits">compare view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-10-02 07:49:06 -05:00
857e455361 chore: update lance dependency to v13.1.0-beta.1 (#4358)
Updates the Rust workspace and Java Lance dependencies to
[v13.1.0-beta.1](https://github.com/lance-format/lance/releases/tag/v13.1.0-beta.1)
and refreshes Cargo.lock. Removes a redundant `pub(crate)` declaration
in the private Node.js blob module to satisfy the required Clippy check.

Validation: `cargo clippy --quiet --workspace --tests --all-features --
-D warnings`, `cargo fmt --all --quiet`, `pnpm build`, and `pnpm test
__test__/blob.test.ts --runInBand` (26 tests passed) in `nodejs`.

---------

Co-authored-by: Daniel Rammer <hamersaw@protonmail.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-01 09:13:08 -05:00
Lance Release 4730f9036b Bump version: 0.40.0-beta.11 → 0.40.0-beta.12 2026-09-30 13:32:13 +00:00
Xuanwo ea223c4ec4 chore: update lance dependency to v13.0.0-beta.18 (#4339)
Updates the Rust workspace dependencies, Cargo lockfile, and Java
`lance-core` to [Lance
v13.0.0-beta.18](https://github.com/lance-format/lance/releases/tag/v13.0.0-beta.18).
It includes lance-format/lance#9574, which bounds the memory an IVF
partition split uses when it re-reads raw vectors during
`optimize_indices`, and lance-format/lance#9582, which keeps the mTLS
REST namespace client on rustls.

Lance's new combined-fields FTS query variant (introduced by
v13.0.0-beta.17) is handled the same way as in #4336: the remote
capability check and Rust/Node bindings accept it, with a regression
test for the remote request payload, and the Python conversion reports
that this query type is not yet supported. This PR supersedes #4336.
2026-09-29 23:19:59 +08:00
0327618a62 feat(sql): add native vector dedup and partitioned mv refresh (#4303)
## Summary

Materialize a source-preserving dedup result from an indexed, pinned
snapshot with a short declaration. The default greedy policy keeps the
smallest unassigned snapshot row ID and removes only its directly
matching neighbors: For A < B < C, an A–B–C chain without an A–C edge
keeps A and C.

```python
from lancedb import vector_dedup

view = db.create_materialized_view(
    "images_clean",
    vector_dedup("images", column="phash", distance_threshold=4),
)
cleaned = view.table
```

The Python source expression captures the source version once at
creation and
waits for the materialized result by default. Use `dataset_version=...`
for an
explicit snapshot, `with_no_data=True` for declaration only, or
`create_materialized_view_async(...)` for a job handle. AsyncConnection
supports
the same expression. It uses the existing MV REST endpoints and registry
jobs,
without opening a SQL query connection. Source names are exact
root-namespace
table names. Additional select/where/limit options are rejected for this
source.

The SQL declaration remains available:

```sql
CREATE MATERIALIZED VIEW images_clean AS
SELECT * FROM vector_dedup('images', 7, 'phash', 4);
REFRESH MATERIALIZED VIEW images_clean;
```

This is the host-facing SQL entry point. The MV builder now accepts a
typed native vector source; the Rust SDK also supports the same
definition through `MaterializedViewDefinition::from_sql` and
`prepare_definition`; `view.refresh().execute()` executes it locally.
Hosts distribute its units using their existing job infrastructure. The
raw `vector_duplicate_pairs` source remains available separately when
callers want the pair relation.

## Implementation and contract

- Use actual Rust Lance `13.0.0-beta.15` (`db53dcf367`); the native
partition primitive computes pairs from index representations without
source-vector aggregation or a Python pair loop.
- Extend partitioned MV refresh with two dependent waves. Physical
segment/partition tasks stream pairs through a bounded external sort,
select direct representatives and write per-source-fragment bitmap
artifacts. Source-fragment tasks start after every selection receipt
completes and stream retained original rows, including blob payloads,
into uncommitted output fragments.
- Reuse normal blob write coercion and row-mask scans, including stable
row-ID translation after compaction. Null vectors, isolated rows and
source deletions are preserved correctly. Conflicting representative
decisions across overlapping index scopes fail before publication.
- Expose `dependency_units()` and `write_refresh_partition_with_inputs`
alongside the existing plan/commit API. Receipts bind
snapshot/configuration/policy/destination generation. Only a complete
accepted set can publish; unfinished units restart, completed units can
be reused. There is no pair-position checkpoint.
- Use MV format 4 for dedup results and format 3 for native pairs;
Python and TypeScript metadata readers recognize both. No source
deletion or source row-ID migration occurs.

Only same-segment/same-partition edges are covered. Quantized scores use
symmetric represented-vector distances. Result materialization requires
V2 data storage and is initially a native MV source, not an ordinary
SELECT table function. Compressed vertex masks stay in memory; edge
sorting spills to local disk. Unreferenced artifacts use normal Lance
retention/cleanup and must be retained for the job's recovery window.

## Validation

AWS Linux validation:

- Native pair/result integration matrix passed: multiple
segments/partitions, exact thresholds, empty output, cross-batch data,
single-process pair parity, source preservation, lost receipts and
publication guards.
- Blob/null-vector/pinned-deletion tests passed with both row-ID modes,
including compaction that changes physical row addresses.
- Representative policy, forced external-sort spill and
conflicting/corrupt artifact tests passed.
- Full MV regression suite: 153 passed, 2 pre-existing ignored. Rust
formatting and Clippy passed.

- Python MV suite: 47 passed; TypeScript MV suite: 11 passed. Native
bindings were rebuilt in project-local environments; formatting, lint
and TypeScript docs passed.
- Rust declaration doctests: 3 passed, including the complete local
dedup example.
- Companion host validation: 41 MV job tests passed (1 pre-existing
ignored), full workspace Clippy passed, and the complete process-level
CLI E2E suite passed (3 tests). Recovery exercises both selection and
materialization waves.
- A real CIFAR-10 pHash run used five actual registry-worker owners,
completed 32 selection + 24 materialization tasks, and retained 49,846
of 50,000 rows with identical original values and image payloads.

Host workflow performance measurements are recorded in the companion
host PR. Cross-platform CI is still running. The previous remote-test
bootstrap failed before Cargo tests with `401 Bad credentials`; the
workflow fix described below is being validated by CI. No deployment or
merge is performed.


## Python source validation

AWS tests cover automatic and explicit snapshots, physical/stable row
IDs, local
and remote creation, sync/job/async-connection APIs, delayed refresh,
strict
options and identifier quoting. The native Python extension was rebuilt
through
the project's uv/maturin backend. Ruff, Pyright and the full MkDocs
API-reference
build passed; both new public symbols are rendered.

A real 50,000-image FEv2 run disabled both Python SQL entry points and
supplied an
unreachable SQL endpoint. The new API still materialized the same 49,846
retained
rows and original image payloads. Three recorded creation/refresh jobs
completed
56 tasks each on all five registry-worker owners, and remained on source
snapshot
3 after source latest advanced to 4. No worker or server wire-protocol
changes
were needed for this client entry point.

Previous CI authentication failure:
https://github.com/lancedb/lancedb/actions/runs/36334679276/job/108663151265.

## Review and CI fixes

- Validate all JSON merge source fields before projection, rejecting
unknown and duplicate names at every struct level. Missing/reordered
fields and ordinary JSON merges remain supported. A checked-in 12-case
integration matrix covers root fields, structs, lists, large lists,
fixed-size lists and map values; rejected writes leave the table version
and row count unchanged.
- Match namespace connection MV method signatures to
`MaterializedViewSource` in all four sync/async methods, fixing the
Python 3.10 import failure from runtime override checks.
- Restore the remote-test script's encrypted-CLI path: use the Actions
token for artifact download and pass `SOPHON_READ_TOKEN` under the
variable the decryption script consumes. The previous workflow omitted
that variable and attempted the private release path, failing with HTTP
401. On the final head, remote CI passes: 1,464 Rust unit tests, the
integration targets and doctests pass (3 unit tests ignored).

AWS validation for these fixes: both review reproducers failed before
their fixes and pass afterward; 55 merge tests, 29 cast tests and the
standalone 7-case admission regression pass. Python 3.10.21 imports
successfully; 90 MV/namespace tests, 14 JSON tests and four real
namespace dedup cases pass. After `794b97a0`, the native binding was
rebuilt again and the JSON suite rerun. Rust formatting/Clippy, Ruff and
Pyright pass. Sophon's locked test compilation passes against the final
SDK source for all seven affected crates. Extended runners, logs and
benchmark artifacts remain local.

Gatekeeper recommends approval on `794b97a0`, and the `breaking-change`
label is set. Final CI: **49 checks passed, 3 expected skips, no
failures or pending checks**, including remote tests, Python 3.10,
minimum dependencies and Windows ARM Rust tests. All wheel builds pass
after retrying the Linux matrix affected by transient AlmaLinux
repository-metadata 404s. All code-review threads are resolved. The PR
remains open for maintainer review and merge.

---------

Co-authored-by: Yang Cen <yangcen@Yangs-Mac-mini.local>
Co-authored-by: Lance Release <lance-dev@lancedb.com>
2026-09-28 18:06:55 +08:00
LanceDB Robot d0fb43b0b4 chore: update lance dependency to v13.0.0-beta.14 (#4324)
Update the Rust workspace Lance dependencies and Java lance-core from
v13.0.0-beta.12 to
[v13.0.0-beta.14](https://github.com/lance-format/lance/releases/tag/v13.0.0-beta.14),
including the refreshed Cargo lockfile.

No compatibility fixes were required; `cargo clippy --quiet --workspace
--tests --all-features -- -D warnings`, `cargo fmt --all --quiet`, and
`git diff --check` passed.
2026-09-25 09:02:00 -05:00
Lance Release 11c637252f Bump version: 0.40.0-beta.10 → 0.40.0-beta.11 2026-09-24 10:05:13 +00:00
Lance Release b3f0e12e32 Bump version: 0.40.0-beta.9 → 0.40.0-beta.10 2026-09-24 07:50:23 +00:00
Lance Release 85c9cf6240 Bump version: 0.40.0-beta.8 → 0.40.0-beta.9 2026-09-23 23:40:53 +00:00
53a2afdffa chore: update lance dependency to v13.0.0-beta.12 (#4265)
Update the Rust workspace Lance dependencies and Java lance-core from
v13.0.0-beta.8 to
[v13.0.0-beta.12](https://github.com/lance-format/lance/releases/tag/v13.0.0-beta.12),
refreshing Cargo.lock.
No compatibility fixes were required; validation passed with `cargo
clippy --quiet --workspace --tests --all-features -- -D warnings`,
`cargo fmt --all --quiet`, and `git diff --check`.

---------

Co-authored-by: Lu Qiu <luqiujob@gmail.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-23 14:31:35 -07:00
Lance Release df7bfcdb65 Bump version: 0.40.0-beta.7 → 0.40.0-beta.8 2026-09-23 17:05:35 +00:00
Lance Release f359c5c8c5 Bump version: 0.40.0-beta.6 → 0.40.0-beta.7 2026-09-23 07:28:56 +00:00
Lance Release a6a6617ee2 Bump version: 0.40.0-beta.5 → 0.40.0-beta.6 2026-09-22 18:00:27 +00:00
Lance Release a8aa19f513 Bump version: 0.40.0-beta.4 → 0.40.0-beta.5 2026-09-21 18:53:12 +00:00
LanceDB Robot 7e171f3abb chore: update lance dependency to v13.0.0-beta.8 (#4242)
Updates the Rust workspace Lance dependencies and Java lance-core to
[v13.0.0-beta.8](https://github.com/lance-format/lance/releases/tag/v13.0.0-beta.8),
refreshing Cargo.lock including the required goosefs-sdk 0.2.2 update.
No source compatibility changes were required.

Validation passed: `cargo clippy --quiet --workspace --tests
--all-features -- -D warnings`, `cargo fmt --all --quiet`, and `git diff
--check`.
2026-09-21 11:08:11 -07:00
Lance Release 73346c0a2c Bump version: 0.40.0-beta.3 → 0.40.0-beta.4 2026-09-20 08:28:58 +00:00