Skip to main content

powdb_query/
result.rs

1use powdb_storage::types::Value;
2
3/// The result of executing a query.
4#[derive(Debug)]
5pub enum QueryResult {
6    Rows {
7        columns: Vec<String>,
8        rows: Vec<Vec<Value>>,
9    },
10    Scalar(Value),   // count, avg, etc.
11    Modified(u64),   // insert/update/delete — number of rows affected
12    Created(String), // DDL — type name created
13    Executed {
14        message: String,
15    }, // DDL — alter/drop feedback
16}
17
18impl QueryResult {
19    pub fn row_count(&self) -> usize {
20        match self {
21            QueryResult::Rows { rows, .. } => rows.len(),
22            QueryResult::Scalar(_) => 1,
23            QueryResult::Modified(n) => *n as usize,
24            QueryResult::Created(_) => 0,
25            QueryResult::Executed { .. } => 0,
26        }
27    }
28}