Files
lancedb/python/src
Will JonesandClaude Opus 5.5 8bdc515f1e feat!: use source statistics to plan merge_insert joins
`MergeInsertBuilder::execute` now takes any `Scannable`, and the source
is routed so Lance's merge join can pick its build side from statistics:

* Rescannable sources become a provider reporting their exact row count.
* One-shot sources are collected up to `source_collect_threshold_bytes`
  (default 64MiB). If they end first they are merged from memory;
  otherwise the prefix is re-chained, spilled for retries, and reported
  as an inexact lower bound.

The threshold can be set per merge or as a connection default.

BREAKING CHANGE: `MergeInsertBuilder::execute` and
`BaseTable::merge_insert` take a `Scannable` instead of
`Box<dyn RecordBatchReader + Send>`. Pass a `Box<dyn RecordBatchReader +
Send>` (e.g. `Box::new(reader) as Box<dyn RecordBatchReader + Send>`), a
`RecordBatch`, or a `Vec<RecordBatch>`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 04:38:19 +00:00
..