Skip to content

Commit 10aef54

Browse files
committed
feat(cat-gateway): impl Query for UpdateTxoSpentQuery
1 parent 916682c commit 10aef54

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

catalyst-gateway/bin/src/db/index/queries/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,8 @@ async fn prepare_queries(
250250
StakeRegistrationInsertQuery,
251251
Cip36Insert,
252252
Cip36InvalidInsert,
253-
Cip36ForVoteKeyInsert
253+
Cip36ForVoteKeyInsert,
254+
UpdateTxoSpentQuery
254255
);
255256
Ok(queries)
256257
}
@@ -276,8 +277,7 @@ impl PreparedQueries {
276277
cip36_registration_error_insert_queries,
277278
cip36_registration_for_vote_key_insert_queries,
278279
) = Cip36InsertQuery::prepare_batch(&session, cfg).await?;
279-
let txo_spent_update_queries =
280-
UpdateTxoSpentQuery::prepare_batch(session.clone(), cfg).await?;
280+
let txo_spent_update_queries = UpdateTxoSpentQuery::prepare_batch(&session, cfg).await?;
281281
let txo_by_stake_address_query = GetTxoByStakeAddressQuery::prepare(session.clone()).await;
282282
let txi_by_txn_hash_query = GetTxiByTxnHashesQuery::prepare(session.clone()).await;
283283
let (

catalyst-gateway/bin/src/db/index/queries/staked_ada/update_txo_spent.rs

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
//! Update the TXO Spent column to optimize future queries.
22
3-
use std::sync::Arc;
3+
use std::{fmt, sync::Arc};
44

55
use scylla::{SerializeRow, Session};
66
use tracing::error;
77

88
use crate::{
99
db::{
1010
index::{
11-
queries::{FallibleQueryResults, PreparedQueries, PreparedQuery, SizedBatch},
11+
queries::{
12+
FallibleQueryResults, PreparedQueries, PreparedQuery, Query, QueryKind, SizedBatch,
13+
},
1214
session::CassandraSession,
1315
},
1416
types::{DbSlot, DbStakeAddress, DbTxnIndex, DbTxnOutputOffset},
@@ -37,10 +39,27 @@ pub(crate) struct UpdateTxoSpentQueryParams {
3739
/// Update TXO spent query.
3840
pub(crate) struct UpdateTxoSpentQuery;
3941

42+
impl Query for UpdateTxoSpentQuery {
43+
/// Prepare Batch of Insert TXI Index Data Queries
44+
async fn prepare_query(
45+
session: &Arc<Session>, cfg: &cassandra_db::EnvVars,
46+
) -> anyhow::Result<QueryKind> {
47+
Self::prepare_batch(session, cfg)
48+
.await
49+
.map(QueryKind::Batch)
50+
}
51+
}
52+
53+
impl fmt::Display for UpdateTxoSpentQuery {
54+
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
55+
write!(f, "{UPDATE_TXO_SPENT_QUERY}")
56+
}
57+
}
58+
4059
impl UpdateTxoSpentQuery {
4160
/// Prepare a batch of update TXO spent queries.
4261
pub(crate) async fn prepare_batch(
43-
session: Arc<Session>, cfg: &cassandra_db::EnvVars,
62+
session: &Arc<Session>, cfg: &cassandra_db::EnvVars,
4463
) -> anyhow::Result<SizedBatch> {
4564
PreparedQueries::prepare_batch(
4665
session.clone(),

0 commit comments

Comments
 (0)