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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user