aboutsummaryrefslogtreecommitdiffstats
path: root/src/sqlite.rs
diff options
context:
space:
mode:
authorTeddy Wing2022-03-12 21:33:12 +0100
committerTeddy Wing2022-03-12 21:33:12 +0100
commite319f0b90218d959fd1c4663b93f08fa69996da1 (patch)
treec4547d9cc1e545b99fb996faba71bff1789834f8 /src/sqlite.rs
parent6a822f1cd3e6b854f51f3cba59f65007b408cac3 (diff)
downloadyaqlite-e319f0b90218d959fd1c4663b93f08fa69996da1.tar.bz2
Move `get_column_names()` to `sqlite` module
Diffstat (limited to 'src/sqlite.rs')
-rw-r--r--src/sqlite.rs29
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
+}