mod common;
use std::time::Duration;
#[tokio::main(flavor = "current_thread")]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = common::client()?;
let target = common::write_table(&client)?;
let stream = client
.ingest_stream(format!(
r#"
SELECT
$0["ts"]::timestamp as occurred_at,
$0["name"]::string as name
INSERT INTO {} (occurred_at, name)
"#,
target.identifier()
))
.batch_bytes(1024 * 1024)
.flush_interval(Duration::from_millis(250))
.build();
stream
.send(&serde_json::json!({
"ts": "2026-03-13T12:00:00Z",
"name": "ScopeDB",
}))
.await?;
let flushed = stream.flush().await?;
println!("flush result: {flushed:?}");
let final_flush = stream.shutdown().await?;
println!("shutdown result: {final_flush:?}");
Ok(())
}