0.3.16-pre.008-fix.001

This commit is contained in:
2026-09-22 08:36:00 +02:00
parent 14f89262ab
commit f2227dce21
3 changed files with 135 additions and 16 deletions

View File

@@ -110,7 +110,6 @@ const LIVE_MANAGED_SCHEMA_EXISTS_SQL: &str = r#"SELECT EXISTS (
AND table_type = 'BASE TABLE'
)"#;
const LIVE_MAX_URI_BYTES: usize = 4_096;
const LIVE_OBSERVATION_EXISTS_SQL: &str = "SELECT EXISTS (SELECT 1 FROM ksp_raw_transaction_observations WHERE observation_key = $1)";
const LIVE_TRANSACTION_EXISTS_SQL: &str = "SELECT EXISTS (SELECT 1 FROM ksp_raw_transactions WHERE signature = $1)";
const LIVE_VARIANT_IDEMPOTENCE_SQL: &str = "SELECT (SELECT COUNT(*) = 1 FROM ksp_raw_transaction_variants WHERE transaction_signature = $1) AND (SELECT COUNT(*) = 1 FROM ksp_raw_transaction_canonical_selectors WHERE transaction_signature = $1) AND (SELECT COUNT(*) = 1 FROM ksp_raw_transaction_observation_variants WHERE transaction_signature = $1) AND EXISTS (SELECT 1 FROM ksp_raw_transaction_observation_variants AS mapping INNER JOIN ksp_raw_transaction_canonical_selectors AS selector ON selector.transaction_signature = mapping.transaction_signature AND selector.canonical_variant_id = mapping.variant_id WHERE mapping.observation_key = $2 AND mapping.transaction_signature = $1)";
@@ -131,7 +130,7 @@ impl LiveFailure {
#[derive(Debug)]
enum LivePersistResult {
BackendError(ksp_store_postgres_lib::PostgresBackendErrorKind),
BackendError,
Outcome(ksp_store_api::RawAcquisitionWriteOutcome),
}
@@ -1007,7 +1006,7 @@ async fn persist_once(
let persisted = backend.persist_raw_transaction_acquisition(transaction, observation, ksp_store_api::RawTransactionAcquisitionMode::ForceRehydrate).await;
let result = match persisted {
std::result::Result::Ok(value) => LivePersistResult::Outcome(value),
std::result::Result::Err(error) => LivePersistResult::BackendError(error.kind()),
std::result::Result::Err(_) => LivePersistResult::BackendError,
};
let close_result = close_backend(backend).await;
if let std::result::Result::Err(error) = close_result {
@@ -1379,18 +1378,6 @@ async fn transaction_exists(client: &tokio_postgres::Client, reference: &ksp_sto
};
}
async fn observation_exists(client: &tokio_postgres::Client, key: &ksp_store_api::RawObservationKey) -> std::result::Result<bool, LiveFailure> {
let key_bytes: &[u8] = key.as_bytes();
let row = match client.query_one(LIVE_OBSERVATION_EXISTS_SQL, &[&key_bytes]).await {
std::result::Result::Ok(value) => value,
std::result::Result::Err(_) => return std::result::Result::Err(LiveFailure::new("observation_exists_probe")),
};
return match row.try_get::<usize, bool>(0) {
std::result::Result::Ok(value) => std::result::Result::Ok(value),
std::result::Result::Err(_) => std::result::Result::Err(LiveFailure::new("observation_exists_decode")),
};
}
async fn conflict_state_is_exact(
client: &tokio_postgres::Client,
reference: &ksp_store_api::RawTransactionReference,