diff options
Diffstat (limited to 'src/sqlite.rs')
-rw-r--r-- | src/sqlite.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/sqlite.rs b/src/sqlite.rs index 8094398..15c813c 100644 --- a/src/sqlite.rs +++ b/src/sqlite.rs @@ -1,5 +1,7 @@ use rusqlite; +use std::collections::HashMap; + /// Get the fundamental SQLite datatype for a given type name. /// @@ -32,3 +34,30 @@ pub fn affinity(type_name: &str) -> rusqlite::types::Type { Type::Text } + + +#[derive(Debug)] +pub struct Zero {} + + +pub fn get_column_names(dbconn: &rusqlite::Connection) -> HashMap<String, Zero> { + let mut column_names = HashMap::new(); + + let mut stmt = dbconn.prepare(r#" + SELECT "name" + FROM pragma_table_info("people"); + "#).unwrap(); + + let rows = stmt.query_map( + [], + |row| row.get(0), + ).unwrap(); + + for row_result in rows { + let row = row_result.unwrap(); + + column_names.insert(row, Zero{}); + } + + column_names +} |