From 25f2eb150d133c0c196996b9598ea01cd265f8ee Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Tue, 25 Nov 2025 14:21:42 +0100 Subject: [PATCH] Enhance error handling in DbError conversion: Improved the From implementation to provide detailed error messages, including SQLSTATE, detail, and hint when available, for better debugging and clarity in database error reporting. --- src/db/connection.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/db/connection.rs b/src/db/connection.rs index d937d36..83545f6 100644 --- a/src/db/connection.rs +++ b/src/db/connection.rs @@ -32,7 +32,19 @@ impl std::error::Error for DbError {} impl From for DbError { fn from(err: PgError) -> Self { - DbError::new(format!("Postgres-Fehler: {err}")) + if let Some(db_err) = err.as_db_error() { + let code = db_err.code(); + let message = db_err.message(); + let detail = db_err.detail().unwrap_or_default(); + let hint = db_err.hint().unwrap_or_default(); + + DbError::new(format!( + "Postgres-Fehler: {} (SQLSTATE: {}, Detail: {}, Hint: {})", + message, code, detail, hint + )) + } else { + DbError::new(format!("Postgres-Fehler (Client): {err}")) + } } }