This is an automated email from the ASF dual-hosted git repository.

absurdfarce pushed a commit to branch 4.x
in repository https://gitbox.apache.org/repos/asf/cassandra-java-driver.git


The following commit(s) were added to refs/heads/4.x by this push:
     new bbd199876 CASSJAVA-3: Fix ordering of LIMIT and PER PARTITION LIMIT 
clauses
bbd199876 is described below

commit bbd1998765befc7b673af147b40f31978affe5de
Author: David Stringer <[email protected]>
AuthorDate: Tue Feb 25 21:27:46 2025 -0800

    CASSJAVA-3: Fix ordering of LIMIT and PER PARTITION LIMIT clauses
    
    patch by David Stringer; reviewed by Lukasz Antoniak and Bret McGuire
    reference: https://github.com/apache/cassandra-java-driver/pull/2022
---
 .../internal/querybuilder/select/DefaultSelect.java    | 18 +++++++++---------
 .../api/querybuilder/select/SelectLimitTest.java       |  6 ++++++
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git 
a/query-builder/src/main/java/com/datastax/oss/driver/internal/querybuilder/select/DefaultSelect.java
 
b/query-builder/src/main/java/com/datastax/oss/driver/internal/querybuilder/select/DefaultSelect.java
index e4b98ef6f..3bacf72b0 100644
--- 
a/query-builder/src/main/java/com/datastax/oss/driver/internal/querybuilder/select/DefaultSelect.java
+++ 
b/query-builder/src/main/java/com/datastax/oss/driver/internal/querybuilder/select/DefaultSelect.java
@@ -425,15 +425,6 @@ public class DefaultSelect implements SelectFrom, Select {
 
     orderingClause.ifPresent(c -> c.appendTo(builder));
 
-    if (limit != null) {
-      builder.append(" LIMIT ");
-      if (limit instanceof BindMarker) {
-        ((BindMarker) limit).appendTo(builder);
-      } else {
-        builder.append(limit);
-      }
-    }
-
     if (perPartitionLimit != null) {
       builder.append(" PER PARTITION LIMIT ");
       if (perPartitionLimit instanceof BindMarker) {
@@ -443,6 +434,15 @@ public class DefaultSelect implements SelectFrom, Select {
       }
     }
 
+    if (limit != null) {
+      builder.append(" LIMIT ");
+      if (limit instanceof BindMarker) {
+        ((BindMarker) limit).appendTo(builder);
+      } else {
+        builder.append(limit);
+      }
+    }
+
     if (allowsFiltering) {
       builder.append(" ALLOW FILTERING");
     }
diff --git 
a/query-builder/src/test/java/com/datastax/oss/driver/api/querybuilder/select/SelectLimitTest.java
 
b/query-builder/src/test/java/com/datastax/oss/driver/api/querybuilder/select/SelectLimitTest.java
index d617aa567..baef745b4 100644
--- 
a/query-builder/src/test/java/com/datastax/oss/driver/api/querybuilder/select/SelectLimitTest.java
+++ 
b/query-builder/src/test/java/com/datastax/oss/driver/api/querybuilder/select/SelectLimitTest.java
@@ -49,4 +49,10 @@ public class SelectLimitTest {
     
assertThat(selectFrom("foo").all().perPartitionLimit(1).perPartitionLimit(2))
         .hasCql("SELECT * FROM foo PER PARTITION LIMIT 2");
   }
+
+  @Test
+  public void should_put_limit_after_partition_limit() {
+    assertThat(selectFrom("foo").all().perPartitionLimit(1).limit(1))
+        .hasCql("SELECT * FROM foo PER PARTITION LIMIT 1 LIMIT 1");
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to