pub struct QueryResult {
pub columns: Vec<String>,
pub rows: Vec<RowResult>,
}
Expand description
The result of a SQLite query issued with Connection::execute().
§Examples
Load a set of rows from the default SQLite database, and iterate over them.
use spin_sdk::sqlite::{Connection, Value};
let db = Connection::open_default()?;
let query_result = db.execute(
"SELECT * FROM users WHERE age >= ?",
&[Value::Integer(min_age)]
)?;
let name_index = query_result.columns.iter().position(|c| c == "name").unwrap();
for row in &query_result.rows {
let name: &str = row.get(name_index).unwrap();
println!("Found user {name}");
}
Use the QueryResult::rows() wrapper to access a column by name. This is simpler and more readable but incurs a lookup on each access, so is not recommended when iterating a data set.
let db = Connection::open_default()?;
let query_result = db.execute(
"SELECT * FROM users WHERE id = ?",
&[Value::Integer(user_id)]
)?;
let name = query_result.rows().next().and_then(|r| r.get::<&str>("name")).unwrap();
Perform an aggregate (scalar) operation over a named SQLite database. The result set contains a single column, with a single row.
use spin_sdk::sqlite::Connection;
let db = Connection::open("customer-data")?;
let query_result = db.execute("SELECT COUNT(*) FROM users", &[])?;
let count = query_result.rows.first().and_then(|r| r.get::<usize>(0)).unwrap();
A result of a query
Fields§
§columns: Vec<String>
The names of the columns retrieved in the query
rows: Vec<RowResult>
the row results each containing the values for all the columns for a given row
Implementations§
Trait Implementations§
Source§impl Clone for QueryResult
impl Clone for QueryResult
Source§fn clone(&self) -> QueryResult
fn clone(&self) -> QueryResult
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for QueryResult
impl RefUnwindSafe for QueryResult
impl Send for QueryResult
impl Sync for QueryResult
impl Unpin for QueryResult
impl UnwindSafe for QueryResult
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more