aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTeddy Wing2022-03-14 21:14:35 +0100
committerTeddy Wing2022-03-14 21:14:35 +0100
commit0c80aaf2fc67b82b0d6ec60bd9317d7b4cf7e9ac (patch)
treef60f463f36c2e9b0bb890d48ef80258eb68638e8 /src
parente9fa29a7c7852caa27be2e5e0f3f7d45e2be5eed (diff)
downloadyaqlite-0c80aaf2fc67b82b0d6ec60bd9317d7b4cf7e9ac.tar.bz2
Idea for selecting a record from the database as YAML
Diffstat (limited to 'src')
-rw-r--r--src/lib.rs4
-rw-r--r--src/select.rs30
2 files changed, 34 insertions, 0 deletions
diff --git a/src/lib.rs b/src/lib.rs
index a532b36..3f6151e 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,11 @@
+pub mod select;
pub mod sqlite;
pub mod yaml;
+pub use select::select;
+
+
#[derive(thiserror::Error, Debug)]
pub enum Error {
#[error("SQL error: {0}")]
diff --git a/src/select.rs b/src/select.rs
new file mode 100644
index 0000000..aa9389f
--- /dev/null
+++ b/src/select.rs
@@ -0,0 +1,30 @@
+pub fn select(
+ dbconn: &rusqlite::Connection,
+ table_name: &str,
+ record_id: &str,
+) -> yaml_rust::Yaml {
+ let mut stmt = dbconn.prepare(r#"
+ SELECT
+ x
+ FROM :table
+ WHERE :pk_column = :pk;
+ "#).unwrap();
+
+ let rows = stmt.query_map(
+ &[
+ (":table", table_name),
+ (":pk_column", "id"),
+ (":pk", record_id),
+ ],
+ |row| {
+ Ok(())
+ },
+ ).unwrap();
+
+ // sqlite3 -header test.db '
+ // SELECT "name"
+ // FROM pragma_table_info("test")
+ // WHERE "pk" != 0;'
+
+ todo!();
+}