Change8

python-v0.33.0

Breaking Changes
📦 lancedbView on GitHub →
1 breaking13 features🐛 14 fixes🔧 10 symbols

Summary

This release introduces significant new features across Python and Node.js, including enhanced namespace management, support for nested field paths in indexing, and various bug fixes related to error handling and data consistency.

⚠️ Breaking Changes

  • Native index creation now supports nested field paths. This may change how index paths are specified if you were relying on previous implicit behavior for nested fields.

Migration Steps

  1. Review index creation logic if you rely on implicit handling of nested fields.
  2. If you were using invalid namespace modes in Python, update your code to handle the new `ValueError`.

✨ New Features

  • Added namespace management methods on the Node.js Connection object.
  • Exposed `connectNamespace` for namespace-backed connections in Node.js.
  • Added `Scannable` primitive for streaming ingestion in Node.js.
  • Supported `bytes` type in Python `lit()` expressions.
  • Added `order_by` method to the Query object in Node.js.
  • Support for setting an unenforced primary key.
  • Support for setting LSM write spec for a table.
  • Added public `take_offsets` method on Python `Permutation`.
  • Aligned Python `to_pandas` method with pandas kwargs.
  • Added progress reporting to `Table.add` in Node.js.
  • Added `renameTable` method on Node.js Connection.
  • Supported DataFusion Expr for table row deletions in Rust.
  • Added support for sending read freshness headers for remote table consistency.

🐛 Bug Fixes

  • Invalid namespace mode/behavior in Python, which was silently ignored, now correctly raises a ValueError.
  • Mapped lance-namespace errors to `TableNotFound` / `TableAlreadyExists` in Rust.
  • Fixed matching of embedding scannable columns by name in Rust.
  • Fixed support for nested field paths in native index creation.
  • Fixed returning canonical nested index paths.
  • Fixed checking all table pages for database membership in Python.
  • Dropped version information from Python `Table.__repr__`.
  • Fixed default discovery of nested vector columns.
  • Fixed routing sync `BaseQueryBuilder.to_batches` through the async path in Python.
  • Canonicalized remote nested field paths.
  • Used the releases API in `check_lance_release.py`.
  • Corrected inverted scores and incorrect missing-FTS penalty in `LinearCombinationReranker`.
  • Removed primary key constraint from MemWAL bucket sharding.
  • Allowed appending arrow.json data into lance.json tables.

Affected Symbols