diff --git a/src/db.rs b/src/db.rs index 279dff8..c1cfc4b 100644 --- a/src/db.rs +++ b/src/db.rs @@ -90,8 +90,8 @@ pub fn open(path: PathBuf) -> Result { pub fn insert_item(conn: &Connection, item: Item) -> Result { debug!("DB: Inserting item: {:?}", item); conn.execute( - "INSERT INTO items (ts, size, compression) VALUES (?1, ?2, ?3)", - (item.ts, item.size, item.compression), + "INSERT INTO items (ts, size, compression, digest_type, digest_value) VALUES (?1, ?2, ?3, ?4, ?5)", + (item.ts, item.size, item.compression, item.digest_type, item.digest_value), )?; Ok(conn.last_insert_rowid()) } @@ -99,8 +99,8 @@ pub fn insert_item(conn: &Connection, item: Item) -> Result { pub fn update_item(conn: &Connection, item: Item) -> Result<()> { debug!("DB: Updating item: {:?}", item); conn.execute( - "UPDATE items SET size=?2, compression=?3 WHERE id=?1", - (item.id, item.size, item.compression), + "UPDATE items SET size=?2, compression=?3, digest_type=?4, digest_value=?5 WHERE id=?1", + (item.id, item.size, item.compression, item.digest_type, item.digest_value), )?; Ok(()) } @@ -175,7 +175,7 @@ pub fn set_item_tags(conn: &Connection, item: Item, tags: &Vec) -> Resul pub fn query_all_items(conn: &Connection) -> Result> { debug!("DB: Querying all items"); let mut statement = conn - .prepare("SELECT id, ts, size, compression FROM items ORDER BY id ASC") + .prepare("SELECT id, ts, size, compression, digest_type, digest_value FROM items ORDER BY id ASC") .context("Problem preparing SQL statement")?; let mut rows = statement.query([])?; let mut items = Vec::new(); @@ -186,6 +186,8 @@ pub fn query_all_items(conn: &Connection) -> Result> { ts: row.get(1)?, size: row.get(2)?, compression: row.get(3)?, + digest_type: row.get(4)?, + digest_value: row.get(5)?, }; items.push(item); } @@ -202,6 +204,8 @@ pub fn query_tagged_items<'a>(conn: &'a Connection, tags: &'a Vec) -> Re items.ts, items.size, items.compression, + items.digest_type, + items.digest_value, count(tags_match.id) as tags_score FROM items, (SELECT tags.id FROM tags WHERE tags.name IN rarray(?1)) as tags_match @@ -228,6 +232,8 @@ pub fn query_tagged_items<'a>(conn: &'a Connection, tags: &'a Vec) -> Re ts: row.get(1)?, size: row.get(2)?, compression: row.get(3)?, + digest_type: row.get(4)?, + digest_value: row.get(5)?, }; items.push(item); } @@ -302,6 +308,8 @@ pub fn get_item_matching( items.ts, items.size, items.compression, + items.digest_type, + items.digest_value, count(sel.id) as score FROM items, (SELECT tags.id FROM tags WHERE tags.name IN rarray(?1)) as sel @@ -328,6 +336,8 @@ pub fn get_item_matching( ts: row.get(1)?, size: row.get(2)?, compression: row.get(3)?, + digest_type: row.get(4)?, + digest_value: row.get(5)?, })), None => Ok(None), } @@ -338,7 +348,7 @@ pub fn get_item(conn: &Connection, item_id: i64) -> Result> { let mut statement = conn .prepare_cached( " - SELECT id, ts, size, compression + SELECT id, ts, size, compression, digest_type, digest_value FROM items WHERE items.id = ?1", ) @@ -352,6 +362,8 @@ pub fn get_item(conn: &Connection, item_id: i64) -> Result> { ts: row.get(1)?, size: row.get(2)?, compression: row.get(3)?, + digest_type: row.get(4)?, + digest_value: row.get(5)?, })), None => Ok(None), } @@ -362,7 +374,7 @@ pub fn get_item_last(conn: &Connection) -> Result> { let mut statement = conn .prepare_cached( " - SELECT id, ts, size, compression + SELECT id, ts, size, compression, digest_type, digest_value FROM items ORDER BY id DESC LIMIT 1", @@ -377,6 +389,8 @@ pub fn get_item_last(conn: &Connection) -> Result> { ts: row.get(1)?, size: row.get(2)?, compression: row.get(3)?, + digest_type: row.get(4)?, + digest_value: row.get(5)?, })), None => Ok(None), }