diff --git a/logictests/pagination.test b/logictests/pagination.test index e7b5d0f391..36e010a512 100644 --- a/logictests/pagination.test +++ b/logictests/pagination.test @@ -4,6 +4,7 @@ create table t1 (grp int, val int); statement ok insert into t1 (grp, val) values (1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6); +onlyif readyset statement ok create cache from select val from t1 where grp = ? order by val asc limit 3 offset ?; @@ -43,6 +44,7 @@ select val from t1 where grp = ? order by val asc limit ? offset ?; statement ok create table t2 (grp2 int, val int); +onlyif readyset statement ok create cache from select t1.val @@ -89,3 +91,14 @@ offset ? 1 2 3 + +query II nosort +select max(val), grp +from t1 +where grp >= ? +group by grp +order by grp asc +limit 10 +offset 1234 +? = 1 +---- diff --git a/readyset-client/src/view/results.rs b/readyset-client/src/view/results.rs index e622c404fc..c54c52fb65 100644 --- a/readyset-client/src/view/results.rs +++ b/readyset-client/src/view/results.rs @@ -262,7 +262,11 @@ impl ResultIterator { }); if let Some(offset) = offset { - results.drain(offset..); + if offset >= results.len() { + results.clear(); + } else { + results.drain(offset..); + } } return ResultIterator::owned(vec![Results {