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 5daf252a9eb..59f1bd85ef6 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 @@ -457,15 +457,6 @@ public String asCql() { } } - 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) { @@ -475,6 +466,15 @@ public String asCql() { } } + 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 d617aa5673f..baef745b481 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 void should_use_last_per_partition_limit_if_called_multiple_times() { 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"); + } }