use sea_orm_turso::TursoConnection;
use sea_orm::{ConnectionTrait, Statement, DatabaseBackend, Value};
#[tokio::test]
async fn repro_insert_returning() {
let conn = TursoConnection::connect_memory().await.unwrap();
conn.execute_unprepared("CREATE TABLE units (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, abbreviation TEXT NOT NULL)")
.await
.unwrap();
let stmt = Statement::from_sql_and_values(
DatabaseBackend::Sqlite,
"INSERT INTO \"units\" (\"name\", \"abbreviation\") VALUES ($1, $2) RETURNING \"id\", \"name\", \"abbreviation\"",
[Value::String(Some("test".into())), Value::String(Some("t".into()))],
);
let rows = conn.query_all_raw(stmt).await.expect("query_all failed");
println!("rows: {}", rows.len());
for r in &rows {
println!("ROW: {:?}", r);
}
assert!(!rows.is_empty(), "RETURNING gave zero rows");
let name: Option<String> = rows[0].try_get("", "name").ok();
println!("name = {:?}", name);
assert_eq!(name.as_deref(), Some("test"), "name came back as {:?}", name);
}