use qail_pg::driver::PgDriver;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("๐งช Test 1: Buffer Boundary (1MB)");
println!("{}", "โ".repeat(40));
let mut driver = PgDriver::connect("localhost", 5432, "orion", "postgres").await?;
let size_kb = 1024;
let huge_string: String = (0..size_kb * 1024)
.map(|i| ((i % 26) as u8 + b'a') as char)
.collect();
println!(" Created {} KB of test data", size_kb);
driver.execute_raw("DROP TABLE IF EXISTS big_text").await?;
driver
.execute_raw("CREATE TABLE big_text (id serial primary key, data text)")
.await?;
let start = std::time::Instant::now();
let escaped = huge_string.replace('\'', "''");
let sql = format!("INSERT INTO big_text (data) VALUES ('{}')", escaped);
println!(" SQL size: {} KB", sql.len() / 1024);
println!(" Inserting...");
driver.execute_raw(&sql).await?;
let elapsed = start.elapsed();
println!(" โ Insert completed in {:?}", elapsed);
driver
.execute_raw("SELECT length(data) FROM big_text ORDER BY id DESC LIMIT 1")
.await?;
println!(" โ Verified in database");
println!();
println!("โ Buffer Boundary Test (1MB) PASSED!");
Ok(())
}