Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
365 changes: 216 additions & 149 deletions Cargo.lock

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ feather-provider = ["dep:arrow-ipc", "dep:memmap2", "dep:tempfile"]

[dependencies]
tracing = "0.1"
datafusion = "53"
datafusion = "54"
usearch = "2.24.0"
arrow-array = "58"
arrow-schema = "58"
Expand Down
4 changes: 0 additions & 4 deletions src/feather_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
// input batches carry *different* dictionaries for the same column is rejected
// at build time rather than silently corrupted.

use std::any::Any;
use std::fmt;
use std::fs::File;
use std::ptr::NonNull;
Expand Down Expand Up @@ -422,9 +421,6 @@ impl PointLookupProvider for FeatherLookupProvider {

#[async_trait]
impl TableProvider for FeatherLookupProvider {
fn as_any(&self) -> &dyn Any {
self
}
fn schema(&self) -> SchemaRef {
self.schema.clone()
}
Expand Down
4 changes: 0 additions & 4 deletions src/lookup.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
// vector search extension. HashKeyProvider is the bundled in-memory
// implementation — suitable for tests and small datasets.

use std::any::Any;
use std::collections::HashMap;
use std::fmt;
use std::sync::Arc;
Expand Down Expand Up @@ -214,9 +213,6 @@ impl PointLookupProvider for HashKeyProvider {

#[async_trait]
impl TableProvider for HashKeyProvider {
fn as_any(&self) -> &dyn Any {
self
}
fn schema(&self) -> SchemaRef {
self.schema.clone()
}
Expand Down
4 changes: 0 additions & 4 deletions src/parquet_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// No rg_map needed. Each usearch key directly encodes (file_idx, rg_idx, local_offset)
// via pack_key / unpack_key. Decoding is O(1) bitwise — no binary search.

use std::any::Any;
use std::collections::BTreeMap;
use std::fmt;
use std::sync::Arc;
Expand Down Expand Up @@ -372,9 +371,6 @@ impl PointLookupProvider for ParquetLookupProvider {

#[async_trait]
impl datafusion::catalog::TableProvider for ParquetLookupProvider {
fn as_any(&self) -> &dyn Any {
self
}
fn schema(&self) -> SchemaRef {
self.schema.clone()
}
Expand Down
4 changes: 0 additions & 4 deletions src/planner.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
// The Sort node is kept in the logical plan so DataFusion handles ordering
// by _distance / dist alias.

use std::any::Any;
use std::collections::{BinaryHeap, HashMap, HashSet};
use std::fmt;
use std::sync::Arc;
Expand Down Expand Up @@ -299,9 +298,6 @@ impl ExecutionPlan for USearchExec {
fn name(&self) -> &str {
"USearchExec"
}
fn as_any(&self) -> &dyn Any {
self
}
fn properties(&self) -> &Arc<PlanProperties> {
&self.properties
}
Expand Down
7 changes: 0 additions & 7 deletions src/sqlite_provider.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
// subsequent runs. The first build reads all parquet files and inserts rows
// inside a single transaction.

use std::any::Any;
use std::fmt;
use std::sync::{Arc, Mutex};

Expand Down Expand Up @@ -554,9 +553,6 @@ fn execute_query_sync(

#[async_trait]
impl TableProvider for SqliteLookupProvider {
fn as_any(&self) -> &dyn Any {
self
}
fn schema(&self) -> SchemaRef {
self.schema.clone()
}
Expand Down Expand Up @@ -631,9 +627,6 @@ impl ExecutionPlan for SqliteFullScanExec {
fn name(&self) -> &str {
"SqliteFullScanExec"
}
fn as_any(&self) -> &dyn Any {
self
}
fn properties(&self) -> &Arc<PlanProperties> {
&self.properties
}
Expand Down
4 changes: 0 additions & 4 deletions src/udf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
//
// These are kept in this module alongside the UDTF and optimizer rule.

use std::any::Any;
use std::hash::{Hash, Hasher};
use std::sync::Arc;

Expand Down Expand Up @@ -78,9 +77,6 @@ impl Hash for DistanceUDF {
}

impl ScalarUDFImpl for DistanceUDF {
fn as_any(&self) -> &dyn Any {
self
}
fn name(&self) -> &str {
&self.name
}
Expand Down
8 changes: 0 additions & 8 deletions src/udtf.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// Returns all table columns plus `_distance: Float32`.
// Requires a vector index on the specified column.

use std::any::Any;
use std::collections::HashMap;
use std::fmt;
use std::sync::Arc;
Expand Down Expand Up @@ -109,10 +108,6 @@ impl fmt::Debug for VectorSearchVectorProvider {

#[async_trait]
impl TableProvider for VectorSearchVectorProvider {
fn as_any(&self) -> &dyn Any {
self
}

fn schema(&self) -> SchemaRef {
// RegisteredTable.schema already includes all data columns + _distance
self.registered.schema.clone()
Expand Down Expand Up @@ -233,9 +228,6 @@ impl ExecutionPlan for BatchExec {
fn name(&self) -> &str {
"BatchExec"
}
fn as_any(&self) -> &dyn Any {
self
}
fn properties(&self) -> &Arc<PlanProperties> {
&self.properties
}
Expand Down