diff options
| author | jakka <jakka@jakka.su> | 2025-08-13 21:44:30 +0300 |
|---|---|---|
| committer | jakka <jakka@jakka.su> | 2025-08-13 21:44:30 +0300 |
| commit | d767ab3eaffe2b9d1a817c11ef76af6294d5f41d (patch) | |
| tree | fc419727862bf39f3e81bc991cc362e649ab0fb1 /src/db.rs | |
| parent | 0a6f92fd22243185312e7299374c91f8e8847b67 (diff) | |
optimized file update query. version bumpv0.2.7
Diffstat (limited to 'src/db.rs')
| -rw-r--r-- | src/db.rs | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -9,9 +9,9 @@ use std::{ use crate::flac::{CURRENT_VENDOR, get_vendor}; const TABLE_CREATE: &str = "CREATE TABLE IF NOT EXISTS flacs (path TEXT PRIMARY KEY UNIQUE, toencode BOOLEAN NOT NULL, modtime INTEGER)"; -const ADD_NEW_ITEM: &str = "INSERT INTO flacs (path, toencode, modtime) VALUES (?1, ?2, ?3)"; -const REPLACE_ITEM: &str = "REPLACE INTO flacs (path, toencode, modtime) VALUES (?1, ?2, ?3)"; -const TOENCODE_QUERY: &str = "SELECT path FROM flacs WHERE toencode"; +const ADD_ITEM: &str = "INSERT INTO flacs (path, toencode, modtime) VALUES (?1, ?2, ?3)"; +const UPDATE_ITEM: &str = "UPDATE flacs SET toencode = ?2, modtime = ?3 WHERE path = ?1"; +const TOENCODE_PATHS: &str = "SELECT path FROM flacs WHERE toencode"; const TOENCODE_NUMBER: &str = "SELECT COUNT(*) from flacs WHERE toencode"; const CHECK_FILE: &str = "SELECT exists(SELECT 1 FROM flacs WHERE path = ?1)"; const FETCH_FILES: &str = "SELECT path FROM flacs"; @@ -60,7 +60,7 @@ impl Database for Connection { .as_secs(); self.execute( - ADD_NEW_ITEM, + ADD_ITEM, params![filename.as_ref().to_str().unwrap(), toencode, modtime], )?; @@ -76,7 +76,7 @@ impl Database for Connection { .as_secs(); self.execute( - REPLACE_ITEM, + UPDATE_ITEM, params![filename.as_ref().to_str().unwrap(), false, modtime], )?; @@ -116,7 +116,7 @@ impl Database for Connection { } fn get_toencode_files(&self) -> Result<Vec<PathBuf>, rusqlite::Error> { - let mut stmt = self.prepare(TOENCODE_QUERY)?; + let mut stmt = self.prepare(TOENCODE_PATHS)?; let mut rows = stmt.query(())?; let mut files: Vec<PathBuf> = Vec::new(); while let Ok(Some(row)) = rows.next() { @@ -168,7 +168,7 @@ mod tests { for file in filenames { conn.insert_file(&file.to_string()).unwrap(); } - let mut stmt = conn.prepare(TOENCODE_QUERY).unwrap(); + let mut stmt = conn.prepare(TOENCODE_PATHS).unwrap(); let mut returned = stmt.query(()).unwrap(); while let Ok(Some(_)) = returned.next() { @@ -193,7 +193,7 @@ mod tests { } conn.execute( - REPLACE_ITEM, + UPDATE_ITEM, params