From 0974ec3f4a3d53b47a80211604b5eb26f7c1d67e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wojciech=20B=C4=85czkowski?= Date: Mon, 20 Nov 2023 08:34:27 +0100 Subject: [PATCH] Add test method for empty pages Adds a test method to SimpleStatementCcmIT that checks if SimpleStatement with page size 1 correctly fetches all rows. Covers issue #254. --- .../driver/core/cql/SimpleStatementCcmIT.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/integration-tests/src/test/java/com/datastax/oss/driver/core/cql/SimpleStatementCcmIT.java b/integration-tests/src/test/java/com/datastax/oss/driver/core/cql/SimpleStatementCcmIT.java index a237c23a9ef..ad7c1ca03c4 100644 --- a/integration-tests/src/test/java/com/datastax/oss/driver/core/cql/SimpleStatementCcmIT.java +++ b/integration-tests/src/test/java/com/datastax/oss/driver/core/cql/SimpleStatementCcmIT.java @@ -367,4 +367,25 @@ public void should_use_page_size() { // Should have only fetched 10 (page size) rows. assertThat(result.remaining()).isEqualTo(10); } + + @Test + public void should_not_fail_on_empty_pages() { + SESSION_RULE.session().execute("CREATE KEYSPACE IF NOT EXISTS ks WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor': 1}"); + + SESSION_RULE.session().execute("CREATE TABLE IF NOT EXISTS ks.t (pk int, ck int, v int, PRIMARY KEY(pk, ck))"); + + for (int i = 0; i < 50; i++) { + SESSION_RULE.session().execute("INSERT INTO ks.t(pk, ck, v) VALUES (?, ?, ?)", i, i, 15); + SESSION_RULE.session().execute("INSERT INTO ks.t(pk, ck, v) VALUES (?, ?, ?)", i, i, 32); + } + + SESSION_RULE.session().execute("INSERT INTO ks.t(pk, ck, v) VALUES (?, ?, ?)", 8, 8, 14); + SESSION_RULE.session().execute("INSERT INTO ks.t(pk, ck, v) VALUES (?, ?, ?)", 11, 11, 14); + SESSION_RULE.session().execute("INSERT INTO ks.t(pk, ck, v) VALUES (?, ?, ?)", 14, 14, 14); + + SimpleStatement st = SimpleStatement.newInstance("SELECT * FROM ks.t WHERE v = 14 ALLOW FILTERING"); + st = st.setPageSize(1); + List allRows = SESSION_RULE.session().execute(st).all(); + assertThat(allRows.size()).isEqualTo(3); + } }