Change8

python-v0.30.0

Breaking Changes
📦 lancedbView on GitHub →
1 breaking21 features🐛 14 fixes3 deprecations🔧 11 symbols

Summary

This release introduces significant features like expression builder API, parallel inserts, and improved remote table handling, alongside breaking changes in Rust input types for table creation and additions.

⚠️ Breaking Changes

  • The Rust implementation of `create_table()` and `Table.add()` now accepts `RecordBatch` or `Vec<RecordBatch>` as input, which may break existing calls expecting different types.

Migration Steps

  1. Review calls to `create_table()` and `Table.add()` in Rust code to ensure they correctly pass `RecordBatch` or `Vec<RecordBatch>` if they were previously passing other types.

✨ New Features

  • Added third-party licenses lists.
  • Show reranker info in hybrid search explain plan.
  • Added `getitem` implementation for the permutation.
  • Improved Permutation PyTorch integration.
  • Lance dependency updated to v2.0.1.
  • Added background check for dataset updates.
  • Upgraded napi-rs from v2 to v3 in the Node.js bindings.
  • Hooked up a new writer for insert operations.
  • Enabled parallel inserts for local tables.
  • Added expression builder API for type-safe query filters in Rust.
  • Upgraded Lance to 3.0.0-rc.2 and added bindings for fast_search.
  • Added `num_deleted_rows` to the delete result.
  • Added support for remote index parameters.
  • Added parity between `fast_search` keyword argument for vector and FTS searches.
  • Supported dictionary to SQL struct conversion in Python's `table.update()`.
  • Allowed passing Azure client/tenant ID through the remote SDK.
  • Inferred JavaScript native arrays.
  • Upgraded Lance to 3.0.0-rc.3.
  • Added support for `prewarm_index` and `prewarm_data` on remote tables.
  • Supported `Expr` in projection query in Rust.
  • Supported field/data type input in Node.js `add_columns()` method.

🐛 Bug Fixes

  • Improved error message for multi-field FTS index creation.
  • Fixed dynamic projection support on remote tables.
  • Fixed non-stopping dataset version check after passing the first consistency check interval.
  • Graceful handling of empty result sets in hybrid search in Python.
  • Allowed permutation reader to be used with remote tables.
  • Stopped retrying OpenAI 401 authentication errors.
  • Updated `DatasetConsistencyWrapper` to accept same-version updates.
  • Fixed permutation reader not expecting all offsets to fit in one batch.
  • Pinned `pylance` to match DataFusion table provider version in Python.
  • Only run npm publish on release tags in CI.
  • Propagated cast errors in `add()`.
  • Propagated managed versioning for namespace connection.
  • Upgraded LocalStack to 4.0 for S3 integration tests in CI.
  • Restored storage options on copy in localstack tests.

Affected Symbols

⚡ Deprecations

  • Outdated files for embedding registry have been deprecated.
  • The `optimize` operation is no longer labeled as experimental.
  • Users are warned about using `delete_unverified`.
lancedb python-v0.30.0 - Change8