summaryrefslogtreecommitdiff
path: root/crates/store/src/backend/postgres/write.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/store/src/backend/postgres/write.rs')
-rw-r--r--crates/store/src/backend/postgres/write.rs44
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)
}
}