diff options
author | Lars Wirzenius <liw@liw.fi> | 2022-03-22 17:10:02 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2022-03-22 17:10:02 +0000 |
commit | 4a9b26903d48d622f7f2a01eb54eec88e92da868 (patch) | |
tree | 6d1a5f4fa835cd217d256ac3cdd5baec5902a2af /src/index.rs | |
parent | 7ae1f33ad0cd0df227e83997268ce2f3540db8d7 (diff) | |
parent | 018fcd28c8dbf84d34cc370496139f678664ca8f (diff) | |
download | obnam2-4a9b26903d48d622f7f2a01eb54eec88e92da868.tar.gz |
Merge branch 'liw/schema-refactor' into 'main'
add backup database schema to evolove; break server database
Closes #194 and #192
See merge request obnam/obnam!222
Diffstat (limited to 'src/index.rs')
-rw-r--r-- | src/index.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/index.rs b/src/index.rs index 4a1b9c9..a3d95fc 100644 --- a/src/index.rs +++ b/src/index.rs @@ -62,8 +62,8 @@ impl Index { } /// Find chunks with a client-assigned label. - pub fn find_by_label(&self, sha256: &str) -> Result<Vec<ChunkId>, IndexError> { - sql::find_by_256(&self.conn, sha256) + pub fn find_by_label(&self, label: &str) -> Result<Vec<ChunkId>, IndexError> { + sql::find_by_label(&self.conn, label) } /// Find all backup generations. @@ -170,10 +170,10 @@ mod sql { let flags = OpenFlags::SQLITE_OPEN_CREATE | OpenFlags::SQLITE_OPEN_READ_WRITE; let conn = Connection::open_with_flags(filename, flags)?; conn.execute( - "CREATE TABLE chunks (id TEXT PRIMARY KEY, sha256 TEXT, generation INT, ended TEXT)", + "CREATE TABLE chunks (id TEXT PRIMARY KEY, label TEXT, generation INT, ended TEXT)", params![], )?; - conn.execute("CREATE INDEX sha256_idx ON chunks (sha256)", params![])?; + conn.execute("CREATE INDEX label_idx ON chunks (label)", params![])?; conn.execute( "CREATE INDEX generation_idx ON chunks (generation)", params![], @@ -197,7 +197,7 @@ mod sql { let generation = if meta.is_generation() { 1 } else { 0 }; let ended = meta.ended(); t.execute( - "INSERT INTO chunks (id, sha256, generation, ended) VALUES (?1, ?2, ?3, ?4)", + "INSERT INTO chunks (id, label, generation, ended) VALUES (?1, ?2, ?3, ?4)", params![chunkid, label, generation, ended], )?; Ok(()) @@ -232,9 +232,9 @@ mod sql { } /// Find chunks with a given checksum. - pub fn find_by_256(conn: &Connection, sha256: &str) -> Result<Vec<ChunkId>, IndexError> { - let mut stmt = conn.prepare("SELECT id FROM chunks WHERE sha256 IS ?1")?; - let iter = stmt.query_map(params![sha256], row_to_id)?; + pub fn find_by_label(conn: &Connection, label: &str) -> Result<Vec<ChunkId>, IndexError> { + let mut stmt = conn.prepare("SELECT id FROM chunks WHERE label IS ?1")?; + let iter = stmt.query_map(params![label], row_to_id)?; let mut ids = vec![]; for x in iter { let x = x?; @@ -268,7 +268,7 @@ mod sql { } fn row_to_meta(row: &Row) -> rusqlite::Result<ChunkMeta> { - let hash: String = row.get("sha256")?; + let hash: String = row.get("label")?; let sha256 = Checksum::sha256_from_str_unchecked(&hash); let generation: i32 = row.get("generation")?; let meta = if generation == 0 { |