diff options
Diffstat (limited to 'crates/store/src/backend/postgres/write.rs')
-rw-r--r-- | crates/store/src/backend/postgres/write.rs | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/crates/store/src/backend/postgres/write.rs b/crates/store/src/backend/postgres/write.rs index 7716c79d..71cc9d52 100644 --- a/crates/store/src/backend/postgres/write.rs +++ b/crates/store/src/backend/postgres/write.rs @@ -301,28 +301,28 @@ impl PostgresStore { trx.commit().await.map(|_| true) } - #[cfg(feature = "test_mode")] - pub(crate) async fn destroy(&self) { - use crate::{ - SUBSPACE_BITMAPS, SUBSPACE_BLOBS, SUBSPACE_BLOB_DATA, SUBSPACE_COUNTERS, - SUBSPACE_INDEXES, SUBSPACE_INDEX_VALUES, SUBSPACE_LOGS, SUBSPACE_VALUES, - }; + pub(crate) async fn purge_bitmaps(&self) -> crate::Result<()> { + // Not needed for PostgreSQL + Ok(()) + } - let conn = self.conn_pool.get().await.unwrap(); - for table in [ - SUBSPACE_VALUES, - SUBSPACE_LOGS, - SUBSPACE_BITMAPS, - SUBSPACE_INDEXES, - SUBSPACE_BLOBS, - SUBSPACE_INDEX_VALUES, - SUBSPACE_COUNTERS, - SUBSPACE_BLOB_DATA, - ] { - conn.execute(&format!("DROP TABLE {}", char::from(table)), &[]) - .await - .unwrap(); - } - self.create_tables().await.unwrap(); + pub(crate) async fn delete_range( + &self, + subspace: u8, + from_key: &[u8], + to_key: &[u8], + ) -> crate::Result<()> { + let conn = self.conn_pool.get().await?; + + let s = conn + .prepare_cached(&format!( + "DELETE FROM {} WHERE k >= $1 AND k < $2", + char::from(subspace), + )) + .await?; + conn.execute(&s, &[&from_key, &to_key]) + .await + .map(|_| ()) + .map_err(Into::into) } } |