diff options
Diffstat (limited to 'atuin-client/src/database.rs')
| -rw-r--r-- | atuin-client/src/database.rs | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/atuin-client/src/database.rs b/atuin-client/src/database.rs index f7c063ce..22bd5886 100644 --- a/atuin-client/src/database.rs +++ b/atuin-client/src/database.rs @@ -6,6 +6,7 @@ use chrono::{prelude::*, Utc}; use fs_err as fs; use itertools::Itertools; use lazy_static::lazy_static; +use rand::{distributions::Alphanumeric, Rng}; use regex::Regex; use sql_builder::{esc, quote, SqlBuilder, SqlName}; use sqlx::{ @@ -460,6 +461,8 @@ impl Database for Sqlite { .map(|after| sql.and_where_gt("timestamp", quote(after.timestamp_nanos()))) }); + sql.and_where_is_null("deleted_at"); + let query = sql.sql().expect("bug in search query. please report"); let res = sqlx::query(&query) @@ -519,7 +522,11 @@ impl Database for Sqlite { // but the time that the system marks it as deleted async fn delete(&self, mut h: History) -> Result<()> { let now = chrono::Utc::now(); - h.command = String::from(""); // blank it + h.command = rand::thread_rng() + .sample_iter(&Alphanumeric) + .take(32) + .map(char::from) + .collect(); // overwrite with random string h.deleted_at = Some(now); // delete it self.update(&h).await?; // save it |
