···158158 let db = state.database().await?;
159159 let storage = state.storage().await?;
160160161161+ let orphan_chunk_limit = match db.get_database_backend() {
162162+ // Arbitrarily chosen sensible value since there's no good default to choose from for MySQL
163163+ sea_orm::DatabaseBackend::MySql => 1000,
164164+ // Panic limit set by sqlx for postgresql: https://github.com/launchbadge/sqlx/issues/671#issuecomment-687043510
165165+ sea_orm::DatabaseBackend::Postgres => u64::from(u16::MAX),
166166+ // Default statement limit imposed by sqlite: https://www.sqlite.org/limits.html#max_variable_number
167167+ sea_orm::DatabaseBackend::Sqlite => 500,
168168+ };
169169+161170 // find all orphan chunks...
162171 let orphan_chunk_ids = Query::select()
163172 .from(Chunk)
···190199191200 let orphan_chunks: Vec<chunk::Model> = Chunk::find()
192201 .filter(chunk::Column::State.eq(ChunkState::Deleted))
202202+ .limit(orphan_chunk_limit)
193203 .all(db)
194204 .await?;
195205