use super::CachedDatabaseAdapter;
use crate::{
backend::{WriteRequest, Writer},
cache::fact_table_version::FactTableVersionStrategy,
error::Result,
};
impl<A: Writer> CachedDatabaseAdapter<A> {
pub(super) async fn bump_fact_table_versions_impl(&self, tables: &[String]) -> Result<()> {
for table in tables {
if !matches!(
self.fact_table_config.get_strategy(table),
FactTableVersionStrategy::VersionTable
) {
continue;
}
let args = [serde_json::json!(table)];
let rows = self
.adapter
.execute_write(&WriteRequest::new("bump_tf_version", &args), &|_| Ok(()))
.await?;
if let Some(new_version) =
rows.first().and_then(|row| row.values().find_map(serde_json::Value::as_i64))
{
self.version_provider.set_cached_version(table, new_version);
}
}
Ok(())
}
}