diff --git a/crates/node/src/storage/database/postgres.rs b/crates/node/src/storage/database/postgres.rs index ae79cd12..d566122f 100644 --- a/crates/node/src/storage/database/postgres.rs +++ b/crates/node/src/storage/database/postgres.rs @@ -69,11 +69,11 @@ impl Database { } pub async fn find_program(&self, hash: impl AsRef) -> Result> { - // non-macro query_as used because of sqlx limitations with enums. - let program = sqlx::query_as::<_, Program>("SELECT * FROM program WHERE hash = $1") - .bind(hash.as_ref()) - .fetch_optional(&self.pool) - .await?; + let mut conn = self.pool.acquire().await?; + let program = match self.get_program(&mut conn, hash).await { + Ok(program) => Some(program), + Err(_) => None, + }; Ok(program) }