From 41c6a7ebbab748ee199790fda88a6e953428aa0c Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 28 Apr 2025 10:01:17 -0500 Subject: [PATCH 1/3] Remove code that didn't make a difference. --- src/main.rs | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/main.rs b/src/main.rs index d7c5d16..b9b4304 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,13 +16,6 @@ fn main() -> Result<(), Box> { set preserve_insertion_order = false; "#, )?; - let mut stmt = conn.prepare("select * from duckdb_settings()")?; - let mut rows = stmt.query([])?; - while let Some(row) = rows.next()? { - let name: String = row.get(0)?; - let value: String = row.get(1)?; - println!("{}: {}", name, value); - } let xmin = -97.734375; let xmax = -97.3828125; let ymin = 30.234375; @@ -45,12 +38,6 @@ fn main() -> Result<(), Box> { r#"create table {table} as select * from read_parquet(?) where bbox.xmin between ? and ? and bbox.ymin between ? and ?;"# ); conn.execute(&query, params![root, xmin, xmax, ymin, ymax,])?; - println!("Counting"); - conn.query_row(&format!("select count() from {table};"), [], |row| { - let count: usize = row.get(0).unwrap(); - println!("{count}"); - Ok(()) - })?; } Ok(()) } From 4b3e57be44432793fc3cfa61a874445a4b1f40b1 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 28 Apr 2025 10:07:27 -0500 Subject: [PATCH 2/3] Remove another println. --- src/main.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index b9b4304..1ba615f 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,7 +30,6 @@ fn main() -> Result<(), Box> { let table = t.split('='); let table = table.last().unwrap(); let root = format!("{ROOT}/{t}/*"); - println!("Making table"); println!( r#"create table {table} as select * from read_parquet("{root}") where bbox.xmin between {xmin} and {xmax} and bbox.ymin between {ymin} and {ymax};"# ); From 50c0e0d22484fc824ebc3729b53ea727df5f6876 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 28 Apr 2025 10:25:22 -0500 Subject: [PATCH 3/3] Set bbox parameters directly in the query. This seems to fix the performance gap. --- src/main.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index 1ba615f..227c3f9 100644 --- a/src/main.rs +++ b/src/main.rs @@ -34,9 +34,9 @@ fn main() -> Result<(), Box> { r#"create table {table} as select * from read_parquet("{root}") where bbox.xmin between {xmin} and {xmax} and bbox.ymin between {ymin} and {ymax};"# ); let query = format!( - r#"create table {table} as select * from read_parquet(?) where bbox.xmin between ? and ? and bbox.ymin between ? and ?;"# + r#"create table {table} as select * from read_parquet(?) where bbox.xmin between {xmin} and {xmax} and bbox.ymin between {ymin} and {ymax};"# ); - conn.execute(&query, params![root, xmin, xmax, ymin, ymax,])?; + conn.execute(&query, params![root,])?; } Ok(()) }