refactor: Remove deduplicate_peerstates()

There's the `UNIQUE (acpeerstates.addr)` constraint since db v94.
This commit is contained in:
iequidoo
2024-02-22 00:52:50 -03:00
committed by iequidoo
parent b6db0152b0
commit c0832af634
2 changed files with 1 additions and 29 deletions

View File

@@ -811,30 +811,6 @@ enum PeerstateChange {
Aeap(String),
}
/// Removes duplicate peerstates from `acpeerstates` database table.
///
/// Normally there should be no more than one peerstate per address.
/// However, the database does not enforce this condition.
///
/// Previously there were bugs that caused creation of additional
/// peerstates when existing peerstate could not be read due to a
/// temporary database error or a failure to parse stored data. This
/// procedure fixes the problem by removing duplicate records.
pub(crate) async fn deduplicate_peerstates(sql: &Sql) -> Result<()> {
sql.execute(
"DELETE FROM acpeerstates
WHERE id NOT IN (
SELECT MIN(id)
FROM acpeerstates
GROUP BY addr
)",
(),
)
.await?;
Ok(())
}
#[cfg(test)]
mod tests {
use super::*;