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
|
.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() {
|
let size = match self.orm.as_ref() {
|
||||||
// TODO implement support in other databases
|
// 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,
|
_ => None,
|
||||||
};
|
};
|
||||||
Ok(size)
|
Ok(size)
|
||||||
|
|||||||
Reference in New Issue
Block a user