use super::CachedDatabaseAdapter;
use crate::{
cache::fact_table_version::FactTableVersionStrategy, db::DatabaseAdapter, error::Result,
};
impl<A: DatabaseAdapter> 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 rows = self
.adapter
.execute_function_call("bump_tf_version", &[serde_json::json!(table)])
.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(())
}
}