diff --git a/crates/omnigraph/src/db/omnigraph.rs b/crates/omnigraph/src/db/omnigraph.rs index 4eee566..f10739e 100644 --- a/crates/omnigraph/src/db/omnigraph.rs +++ b/crates/omnigraph/src/db/omnigraph.rs @@ -1022,19 +1022,24 @@ impl Omnigraph { let snapshot = self.snapshot().await; let table_key = format!("node:{}", type_name); - let ds = snapshot.open(&table_key).await?; + let handle = self + .storage() + .open_snapshot_at_table(&snapshot, &table_key) + .await?; let filter_sql = format!("id = '{}'", id.replace('\'', "''")); let row_id = self - .table_store - .first_row_id_for_filter(&ds, &filter_sql) + .storage() + .first_row_id_for_filter(&handle, &filter_sql) .await? .ok_or_else(|| { OmniError::manifest(format!("no {} with id '{}' found", type_name, id)) })?; - // Use take_blobs to get the BlobFile handle - let ds = Arc::new(ds); + // `take_blobs` is a Lance-specific blob accessor not surfaced + // through the `TableStorage` trait — reach the inner `Arc` + // via the `pub(crate)` accessor for this read-only call. + let ds = handle.into_arc(); let mut blobs = ds .take_blobs(&[row_id], property) .await diff --git a/crates/omnigraph/src/db/omnigraph/export.rs b/crates/omnigraph/src/db/omnigraph/export.rs index 3043ce9..7696056 100644 --- a/crates/omnigraph/src/db/omnigraph/export.rs +++ b/crates/omnigraph/src/db/omnigraph/export.rs @@ -60,12 +60,12 @@ async fn entity_from_snapshot( } let ds = db - .table_store - .open_snapshot_table(snapshot, table_key) + .storage() + .open_snapshot_at_table(snapshot, table_key) .await?; let filter_sql = format!("id = '{}'", id.replace('\'', "''")); let batches = db - .table_store + .storage() .scan(&ds, None, Some(&filter_sql), None) .await?; let Some(batch) = batches.iter().find(|batch| batch.num_rows() > 0) else {