diff --git a/src/executor/paginator.rs b/src/executor/paginator.rs index 08ceffbd..562dfbdc 100644 --- a/src/executor/paginator.rs +++ b/src/executor/paginator.rs @@ -234,6 +234,7 @@ where type Selector = S; fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, S> { + assert!(page_size != 0, "page_size should not be zero"); Paginator { query: self.query, page: 0, @@ -251,6 +252,7 @@ where { type Selector = S; fn paginate(self, db: &'db C, page_size: u64) -> Paginator<'db, C, S> { + assert!(page_size != 0, "page_size should not be zero"); let sql = &self.stmt.sql.trim()[6..]; let mut query = SelectStatement::new(); query.expr(if let Some(values) = self.stmt.values { @@ -768,4 +770,12 @@ mod tests { assert_eq!(db.into_transaction_log(), Transaction::wrap(stmts)); Ok(()) } + + #[smol_potat::test] + #[should_panic] + async fn error() { + let (db, _pages) = setup(); + + fruit::Entity::find().paginate(&db, 0); + } }