1
0
mirror of https://git.ngram.ca/OpenJam/rc-servers synced 2026-08-23 23:08:52 +00:00

Add untested garage storage use support for postgres in debug builds; #130

This commit is contained in:
NG (Graham)
2026-06-20 18:57:00 -04:00
parent b597e1337d
commit 777ba327cc

View File

@@ -241,10 +241,40 @@ impl Database {
.await
}
pub async fn garage_storage_by_user_id(&self, _user_id: i32) -> Result<Option<u64>, sea_orm::DbErr> {
pub async fn garage_storage_by_user_id(&self, user_id: i32) -> Result<Option<u64>, sea_orm::DbErr> {
let size = match self.orm.as_ref() {
// TODO implement support in other databases
//sea_orm::DatabaseConnection::SqlxPostgresPoolConnection(_) => None,
sea_orm::DatabaseConnection::SqlxPostgresPoolConnection(_) => {
#[cfg(debug_assertions)]
{
/*let query = sea_orm::sea_query::raw_query!(
PostgresQueryBuilder,
r#"select sum(pg_column_size(g.*)) from garages g where g.user_id = $user_id;"#
);*/
struct PgColumnSize;
impl sea_orm::sea_query::Iden for PgColumnSize {
fn unquoted(&self, s: &mut dyn std::fmt::Write) {
write!(s, "pg_column_size").unwrap();
}
}
let result = crate::schema::garage::Entity::find()
.select_only()
.expr_as(
sea_orm::sea_query::Func::cust(PgColumnSize)
.arg(sea_orm::sea_query::Expr::col((crate::schema::garage::Entity, sea_orm::sea_query::Asterisk)))
, "column")
.filter(crate::schema::garage::Column::UserId.eq(user_id))
.into_model::<crate::schema::common_query::SingleColumn<u64>>()
.one(self.orm.as_ref())
.await?;
result.map(|x| x.column)
}
#[cfg(not(debug_assertions))]
{
None
}
},
_ => None,
};
Ok(size)