unstale

pypi / lancedb

lancedb

What changed in lancedb 0.38 to 0.40, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-24.

14 breaking1 security60 new APIs and options14 behavior and defaults23 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.5 on npm

lancedb 0.4046 changes

Breaking changes 2

  • A Function binding is retired when its output columns are dropped.

    0.40.0release notes

  • . and .. are no longer allowed as table names.

    0.40.0release notes

Security 1

  • Authentication headers are redacted from debug logs.

    0.40.0release notes

New APIs and options 31

  • The remote client now supports add_columns with a schema.

    0.40.0release notes

  • Node BlobFile exposes seek, tell, bounded read, readRanges, and close.

    0.40.0release notes

  • Blob reads in Node can now accept an AbortSignal for cancellation.

    0.40.0release notes

  • Adds an index builder for BloomFilter indexes.

    0.40.0release notes

  • Python CrossEncoder calls can pass batch_size and other CrossEncoder kwargs.

    0.40.0release notes

  • Clients can list a table's per-row Function errors.

    0.40.0release notes

  • Function initialization is carried in the canonical model.

    0.40.0release notes

  • Functions can be addressed by namespace path.

    0.40.0release notes

  • Registered Functions are represented by OCI image identity.

    0.40.0release notes

  • Python Functions now support initialization and shipped helper code.

    0.40.0release notes

  • Materialized views can be grouped by the IVF partition of a vector column.

    0.40.0release notes

  • The Python SDK can pause and resume jobs.

    0.40.0release notes

  • Adds a JSON field helper for Node.js.

    0.40.0release notes

  • Adds APIs for working with materialized views through remote clients.

    0.40.0release notes

  • Materialized views can now be grouped using GROUP BY.

    0.40.0release notes

  • Materialized views can be defined by a query, with Functions in FROM position.

    0.40.0release notes

  • Makes MetadataEraserExec public for Rust developers.

    0.40.0release notes

  • SQL now exposes composable native vector relations.

    0.40.0release notes

  • Adds an index builder for NGram indexes.

    0.40.0release notes

  • OAuth now uses the oauth2 crate and supports configurable client authentication.

    0.40.0release notes

  • Adds a persistent OAuth token cache and session APIs for retaining authentication state.

    0.40.0release notes

  • OIDC support now includes resource and audience.

    0.40.0release notes

  • Adds remote catalogs and Python and TypeScript bindings.

    0.40.0release notes

  • Adds an index builder for RTree indexes.

    0.40.0release notes

  • Adds named Secrets, bindings, and namespace addressing.

    0.40.0release notes

  • Node Table.add now exposes allowExternalBlobOutsideBases.

    0.40.0release notes

  • Adds a TypeSafe reranker to the Python SDK.

    0.40.0release notes

  • Adds opt-in request batching for TypeSafeReranker.

    0.40.0release notes

  • Adds native vector deduplication and partitioned materialized-view refresh in SQL.

    0.40.0release notes

  • Adds create, read, update, and delete APIs for views.

    0.40.0release notes

  • Adds a Rust zonemap index builder; zonemap index type support is also widened.

    0.40.0release notes

Behavior and default changes 3

  • drop_function now returns a cleanup job.

    0.40.0release notes

  • drop_view now returns a cleanup job.

    0.40.0release notes

  • Hybrid search deduplicates results by primary key on MemWAL tables.

    0.40.0release notes

Fixes and other changes 9

  • Keeps computed-column freshness across branches and clones.

    0.40.0release notes

  • Accepts all-null batches and plain JSON strings for JSON columns.

    0.40.0release notes

  • Node now supports LargeUtf8 and LargeBinary Arrow columns.

    0.40.0release notes

  • open_table and create_table return InvalidTableName instead of panicking for invalid table names.

    0.40.0release notes

  • Pins remote BlobFile reads to the version that was opened.

    0.40.0release notes

  • Remote materialized-view drops now accept synchronous calls.

    0.40.0release notes

  • Ranks each result list separately during RRF multivector reranking.

    0.40.0release notes

  • Sync hybrid queries now apply the default limit of 10.

    0.40.0release notes

  • Node and Python table.update write NaN and infinity as SQL literals.

    0.40.0release notes

lancedb 0.3924 changes

Breaking changes 6

  • Blob table creation no longer enables stable row IDs.

    0.39.0release notes

  • Computed column rows are recomputed when their inputs change.

    0.39.0release notes

  • A new job API replaces get_job.

    0.39.0release notes

  • The get_job API is replaced by describe_job.

    0.39.0release notes

  • The job_history API is replaced by query_job_events.

    0.39.0release notes

  • A new job event query API replaces job_history.

    0.39.0release notes

New APIs and options 7

Behavior and default changes 3

Fixes and other changes 8

lancedb 0.3842 changes

Breaking changes 6

  • Branch merge is renamed to cherry_pick.

    0.38.0release notes

  • Node.js parsed embedding configurations are keyed by vector column.

    0.38.0release notes

  • Index catch-up must be recorded and explicitly activated.

    0.38.0release notes

  • The Node.js package now requires Node 22 or later.

    0.38.0release notes

  • The Python package now requires Pydantic v2.

    0.38.0release notes

  • Table existence is now determined by the manifest.

    0.38.0release notes

New APIs and options 22

  • Blob computed columns can be refreshed.

    0.38.0release notes

  • Writes can accept blob URIs.

    0.38.0release notes

  • Blob v2 UDF signatures are supported.

    0.38.0release notes

  • Computed columns can be declared using SQL expressions.

    0.38.0release notes

  • Computed columns are supported on remote tables.

    0.38.0release notes

  • Functions can declare conda environments.

    0.38.0release notes

  • The data loader supports remote tables.

    0.38.0release notes

  • An asynchronous drop table API is available.

    0.38.0release notes

  • Python function versions can be bound to columns.

    0.38.0release notes

  • First-class function wire contracts are available.

    0.38.0release notes

  • Functions can declare GPU resource requirements.

    0.38.0release notes

  • Function column bindings can be grouped.

    0.38.0release notes

  • Python function signatures support large_utf8.

    0.38.0release notes

  • Full-text search exposes list-element document granularity.

    0.38.0release notes

  • Node.js adds listTables and deprecates tableNames.

    0.38.0release notes

  • The synchronous Python RemoteTable exposes LSM checkpoint and stats.

    0.38.0release notes

  • Materialized view declarations are supported on local tables.

    0.38.0release notes

  • Materialized views can be refreshed.

    0.38.0release notes

  • Python supports nested Function Arrow types.

    0.38.0release notes

  • StreamingDataset adds on_transform_error fault tolerance.

    0.38.0release notes

  • Scalar function authoring and a catalog client are available.

    0.38.0release notes

  • StreamingDataset supports sequence packing.

    0.38.0release notes

Behavior and default changes 8

  • A computed-column batch can read its own earlier declarations.

    0.38.0release notes

  • Data loader reads pin the base table version.

    0.38.0release notes

  • A materialized view refresh is bound to the view incarnation.

    0.38.0release notes

  • refresh_column_async now returns a job handle.

    0.38.0release notes

  • Refresh job results are returned with typed results.

    0.38.0release notes

  • Backpressure is added to the StreamingDataset post-transform queue.

    0.38.0release notes

  • Table listings are paged using the store's own cursor.

    0.38.0release notes

  • Python update filters accept expressions.

    0.38.0release notes

Fixes and other changes 6

  • Filters now support double-quoted identifiers.

    0.38.0release notes

  • Multiple function bindings are allowed per table.

    0.38.0release notes

  • Non-null Function inputs are accepted for nullable parameters.

    0.38.0release notes

  • Hybrid search no longer silently ignores offset().

    0.38.0release notes

  • The MemWAL LSM surface is brought to parity across SDKs.

    0.38.0release notes

  • Remote table_names no longer invents a page token for a namespace.

    0.38.0release notes