From e1c2537789679ebaf4f08f5fdf050cd16abac6a9 Mon Sep 17 00:00:00 2001 From: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2026 21:23:22 +0000 Subject: [PATCH] fix: defer LSM filter schema conversion --- rust/lancedb/src/table/query/lsm.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/lancedb/src/table/query/lsm.rs b/rust/lancedb/src/table/query/lsm.rs index 372114e53..07ea7fb81 100644 --- a/rust/lancedb/src/table/query/lsm.rs +++ b/rust/lancedb/src/table/query/lsm.rs @@ -383,7 +383,6 @@ fn base_scanner( snapshots: Vec, in_memory: HashMap, ) -> Result { - let schema = ArrowSchema::from(dataset.schema()); let mut scanner = LsmScanner::new(Arc::new(dataset.clone()), snapshots, pk_columns); for (shard_id, memtables) in in_memory { scanner = scanner.with_in_memory_memtables(shard_id, memtables); @@ -398,6 +397,7 @@ fn base_scanner( // Parse here instead of inside `LsmScanner::filter` so the typed // DataFusion `FieldNotFound` error is still available for the // same nested-field enrichment used by the ordinary scanner. + let schema = ArrowSchema::from(dataset.schema()); let df_schema = schema.clone().to_dfschema().map_err(|error| { enrich_filter_error(error, &schema, "Failed to create DFSchema") })?;