Skip to content

Commit d548fbc

Browse files
authored
Merge pull request #99 from jeffgbutler/master
Change Fetch First Rendered Syntax - Always use "rows" after "offset"
2 parents e76d201 + 87ecb54 commit d548fbc

File tree

5 files changed

+13
-12
lines changed

5 files changed

+13
-12
lines changed

src/main/java/org/mybatis/dynamic/sql/select/render/FetchFirstPagingModelRenderer.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,15 @@ private Optional<FragmentAndParameters> renderFetchFirstRowsOnly(Long fetchFirst
5858
}
5959

6060
private Optional<FragmentAndParameters> renderOffsetOnly(Long offset) {
61-
return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER)) //$NON-NLS-1$
61+
return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER) //$NON-NLS-1$
62+
+ " rows") //$NON-NLS-1$
6263
.withParameter(OFFSET_PARAMETER, offset)
6364
.buildOptional();
6465
}
6566

6667
private Optional<FragmentAndParameters> renderOffsetAndFetchFirstRows(Long offset, Long fetchFirstRows) {
6768
return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER) //$NON-NLS-1$
68-
+ " fetch first " + renderPlaceholder(FETCH_FIRST_ROWS_PARAMETER) //$NON-NLS-1$
69+
+ " rows fetch first " + renderPlaceholder(FETCH_FIRST_ROWS_PARAMETER) //$NON-NLS-1$
6970
+ " rows only") //$NON-NLS-1$
7071
.withParameter(OFFSET_PARAMETER, offset)
7172
.withParameter(FETCH_FIRST_ROWS_PARAMETER, fetchFirstRows)

src/test/java/examples/animal/data/FetchFirstTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ public void testOffsetAndFetchFirstAfterFrom() {
7979
assertAll(
8080
() -> assertThat(records.size()).isEqualTo(3),
8181
() -> assertThat(records.get(0).getId()).isEqualTo(23),
82-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"),
82+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"),
8383
() -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L),
8484
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
8585
);
@@ -125,7 +125,7 @@ public void testOffsetAndFetchFirstAfterWhere() {
125125
assertAll(
126126
() -> assertThat(records.size()).isEqualTo(3),
127127
() -> assertThat(records.get(0).getId()).isEqualTo(45),
128-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} and id > #{parameters.p2,jdbcType=INTEGER} offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"),
128+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} and id > #{parameters.p2,jdbcType=INTEGER} offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"),
129129
() -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L),
130130
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
131131
);
@@ -171,7 +171,7 @@ public void testOffsetAndFetchFirstAfterOrderBy() {
171171
assertAll(
172172
() -> assertThat(records.size()).isEqualTo(3),
173173
() -> assertThat(records.get(0).getId()).isEqualTo(23),
174-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"),
174+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"),
175175
() -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L),
176176
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
177177
);

src/test/java/examples/animal/data/LimitAndOffsetTest.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ public void testOffsetOnlyAfterFrom() {
122122
assertAll(
123123
() -> assertThat(records.size()).isEqualTo(43),
124124
() -> assertThat(records.get(0).getId()).isEqualTo(23),
125-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset}"),
125+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} rows"),
126126
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
127127
);
128128
}
@@ -191,7 +191,7 @@ public void testOffsetOnlyAfterWhere() {
191191
assertAll(
192192
() -> assertThat(records.size()).isEqualTo(27),
193193
() -> assertThat(records.get(0).getId()).isEqualTo(23),
194-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} offset #{parameters._offset}"),
194+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} offset #{parameters._offset} rows"),
195195
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
196196
);
197197
}
@@ -259,7 +259,7 @@ public void testOffsetOnlyAfterOrderBy() {
259259
assertAll(
260260
() -> assertThat(records.size()).isEqualTo(43),
261261
() -> assertThat(records.get(0).getId()).isEqualTo(23),
262-
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset}"),
262+
() -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} rows"),
263263
() -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L)
264264
);
265265
}

src/test/java/examples/groupby/GroupByTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,7 @@ public void testOffsetOnlyAfterGroupBy() {
255255
.build()
256256
.render(RenderingStrategy.MYBATIS3);
257257

258-
String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset}";
258+
String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} rows";
259259
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
260260

261261
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);
@@ -279,7 +279,7 @@ public void testOffsetAndFetchFirstAfterGroupBy() {
279279
.build()
280280
.render(RenderingStrategy.MYBATIS3);
281281

282-
String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only";
282+
String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only";
283283
assertThat(selectStatement.getSelectStatement()).isEqualTo(expected);
284284

285285
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);

src/test/java/examples/joins/JoinMapperTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ public void testOffsetOnlyAfterJoin() {
595595

596596
String expectedStatment = "select ol.order_id, ol.quantity, im.item_id, im.description"
597597
+ " from ItemMaster im left join OrderLine ol on ol.item_id = im.item_id"
598-
+ " offset #{parameters._offset}";
598+
+ " offset #{parameters._offset} rows";
599599
assertThat(selectStatement.getSelectStatement()).isEqualTo(expectedStatment);
600600

601601
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);
@@ -630,7 +630,7 @@ public void testOffsetAndFetchFirstAfterJoin() {
630630

631631
String expectedStatment = "select ol.order_id, ol.quantity, im.item_id, im.description"
632632
+ " from ItemMaster im left join OrderLine ol on ol.item_id = im.item_id"
633-
+ " offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only";
633+
+ " offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only";
634634
assertThat(selectStatement.getSelectStatement()).isEqualTo(expectedStatment);
635635

636636
List<Map<String, Object>> rows = mapper.generalSelect(selectStatement);

0 commit comments

Comments
 (0)