From 17463dd65711ecd2b6e290331c42d895c605ee2f Mon Sep 17 00:00:00 2001 From: Alexander Onnikov Date: Thu, 11 Sep 2025 23:34:20 +0700 Subject: [PATCH] simplify error check logic Signed-off-by: Alexander Onnikov --- server/src/blob.rs | 4 +++- server/src/postgres.rs | 8 -------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/server/src/blob.rs b/server/src/blob.rs index d409a58592..a78ec0c2ff 100644 --- a/server/src/blob.rs +++ b/server/src/blob.rs @@ -6,6 +6,7 @@ use bytes::{Bytes, BytesMut}; use futures::stream::StreamExt; use futures_util::Stream; use size::Size; +use tokio_postgres::error::SqlState; use tracing::*; use crate::handlers::ApiError; @@ -167,7 +168,8 @@ async fn make_blob(pool: &Pool, s3_key: &String, hash: &str) -> Result break Ok(None), Err(e) => { - if postgres::is_unique_constraint_violation(&e) { + if matches!(e, DbError::Db(ref db_err) if db_err.code() == Some(&SqlState::UNIQUE_VIOLATION)) + { debug!("concurrent upload detected"); if let Some(s3_key_found) = postgres::find_blob_by_hash(&pool, &hash).await? { diff --git a/server/src/postgres.rs b/server/src/postgres.rs index d705590bd7..ec28ce478d 100644 --- a/server/src/postgres.rs +++ b/server/src/postgres.rs @@ -4,7 +4,6 @@ use bb8_postgres::PostgresConnectionManager; use bytes::Bytes; use serde::de::DeserializeOwned; use tokio_postgres::NoTls; -use tokio_postgres::error::SqlState; use tokio_postgres::{self as pg}; use tracing::*; @@ -209,10 +208,3 @@ pub async fn set_part( Ok(()) } - -pub fn is_unique_constraint_violation(e: &DbError) -> bool { - match e { - DbError::Db(e) => e.code() == Some(&SqlState::UNIQUE_VIOLATION), - _ => false, - } -}