From e319f0b90218d959fd1c4663b93f08fa69996da1 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 12 Mar 2022 21:33:12 +0100 Subject: Move `get_column_names()` to `sqlite` module --- src/sqlite.rs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/sqlite.rs') 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 { + 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 +} -- cgit v1.2.3