use chdb_rust::arg::Arg;
use chdb_rust::execute;
use chdb_rust::format::OutputFormat;
fn main() -> Result<(), chdb_rust::error::Error> {
println!("=== Query Results Examples ===\n");
let result = execute(
"SELECT number, number * 2 AS doubled FROM numbers(5)",
Some(&[Arg::OutputFormat(OutputFormat::JSONEachRow)]),
)?;
println!("1. Getting result as UTF-8 string:");
match result.data_utf8() {
Ok(data) => println!("UTF-8: {data}"),
Err(e) => eprintln!("Error: {e}"),
}
println!();
let result = execute(
"SELECT number, number * 2 AS doubled FROM numbers(5)",
Some(&[Arg::OutputFormat(OutputFormat::JSONEachRow)]),
)?;
println!("2. Getting result as UTF-8 string (lossy conversion):");
println!("Lossy UTF-8: {}", result.data_utf8_lossy());
println!();
println!("3. Getting raw bytes:");
let bytes = result.data_ref();
println!("Bytes length: {}", bytes.len());
println!("First 50 bytes: {:?}", &bytes[..bytes.len().min(50)]);
println!();
println!("4. Query statistics:");
println!("Rows read: {}", result.rows_read());
println!("Bytes read: {}", result.bytes_read());
println!("Elapsed time: {:?}", result.elapsed());
Ok(())
}