mirror of
https://github.com/lancedb/lancedb.git
synced 2026-10-13 07:12:27 +00:00
`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>