diff --git a/src/main/java/org/mybatis/dynamic/sql/select/render/FetchFirstPagingModelRenderer.java b/src/main/java/org/mybatis/dynamic/sql/select/render/FetchFirstPagingModelRenderer.java index 35ffe1892..6c0b7c14e 100644 --- a/src/main/java/org/mybatis/dynamic/sql/select/render/FetchFirstPagingModelRenderer.java +++ b/src/main/java/org/mybatis/dynamic/sql/select/render/FetchFirstPagingModelRenderer.java @@ -58,14 +58,15 @@ private Optional renderFetchFirstRowsOnly(Long fetchFirst } private Optional renderOffsetOnly(Long offset) { - return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER)) //$NON-NLS-1$ + return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER) //$NON-NLS-1$ + + " rows") //$NON-NLS-1$ .withParameter(OFFSET_PARAMETER, offset) .buildOptional(); } private Optional renderOffsetAndFetchFirstRows(Long offset, Long fetchFirstRows) { return FragmentAndParameters.withFragment("offset " + renderPlaceholder(OFFSET_PARAMETER) //$NON-NLS-1$ - + " fetch first " + renderPlaceholder(FETCH_FIRST_ROWS_PARAMETER) //$NON-NLS-1$ + + " rows fetch first " + renderPlaceholder(FETCH_FIRST_ROWS_PARAMETER) //$NON-NLS-1$ + " rows only") //$NON-NLS-1$ .withParameter(OFFSET_PARAMETER, offset) .withParameter(FETCH_FIRST_ROWS_PARAMETER, fetchFirstRows) diff --git a/src/test/java/examples/animal/data/FetchFirstTest.java b/src/test/java/examples/animal/data/FetchFirstTest.java index aa6339fbe..3e4987d40 100644 --- a/src/test/java/examples/animal/data/FetchFirstTest.java +++ b/src/test/java/examples/animal/data/FetchFirstTest.java @@ -79,7 +79,7 @@ public void testOffsetAndFetchFirstAfterFrom() { assertAll( () -> assertThat(records.size()).isEqualTo(3), () -> assertThat(records.get(0).getId()).isEqualTo(23), - () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"), + () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"), () -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); @@ -125,7 +125,7 @@ public void testOffsetAndFetchFirstAfterWhere() { assertAll( () -> assertThat(records.size()).isEqualTo(3), () -> assertThat(records.get(0).getId()).isEqualTo(45), - () -> 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"), + () -> 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"), () -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); @@ -171,7 +171,7 @@ public void testOffsetAndFetchFirstAfterOrderBy() { assertAll( () -> assertThat(records.size()).isEqualTo(3), () -> assertThat(records.get(0).getId()).isEqualTo(23), - () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"), + () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"), () -> assertThat(selectStatement.getParameters().get("_fetchFirstRows")).isEqualTo(3L), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); diff --git a/src/test/java/examples/animal/data/LimitAndOffsetTest.java b/src/test/java/examples/animal/data/LimitAndOffsetTest.java index 8d7ad6962..6a5726949 100644 --- a/src/test/java/examples/animal/data/LimitAndOffsetTest.java +++ b/src/test/java/examples/animal/data/LimitAndOffsetTest.java @@ -122,7 +122,7 @@ public void testOffsetOnlyAfterFrom() { assertAll( () -> assertThat(records.size()).isEqualTo(43), () -> assertThat(records.get(0).getId()).isEqualTo(23), - () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset}"), + () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData offset #{parameters._offset} rows"), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); } @@ -191,7 +191,7 @@ public void testOffsetOnlyAfterWhere() { assertAll( () -> assertThat(records.size()).isEqualTo(27), () -> assertThat(records.get(0).getId()).isEqualTo(23), - () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} offset #{parameters._offset}"), + () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData where id < #{parameters.p1,jdbcType=INTEGER} offset #{parameters._offset} rows"), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); } @@ -259,7 +259,7 @@ public void testOffsetOnlyAfterOrderBy() { assertAll( () -> assertThat(records.size()).isEqualTo(43), () -> assertThat(records.get(0).getId()).isEqualTo(23), - () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset}"), + () -> assertThat(selectStatement.getSelectStatement()).isEqualTo("select * from AnimalData order by id offset #{parameters._offset} rows"), () -> assertThat(selectStatement.getParameters().get("_offset")).isEqualTo(22L) ); } diff --git a/src/test/java/examples/groupby/GroupByTest.java b/src/test/java/examples/groupby/GroupByTest.java index 7e6e2d313..3a4fc4554 100644 --- a/src/test/java/examples/groupby/GroupByTest.java +++ b/src/test/java/examples/groupby/GroupByTest.java @@ -255,7 +255,7 @@ public void testOffsetOnlyAfterGroupBy() { .build() .render(RenderingStrategy.MYBATIS3); - String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset}"; + String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} rows"; assertThat(selectStatement.getSelectStatement()).isEqualTo(expected); List> rows = mapper.generalSelect(selectStatement); @@ -279,7 +279,7 @@ public void testOffsetAndFetchFirstAfterGroupBy() { .build() .render(RenderingStrategy.MYBATIS3); - String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"; + String expected = "select last_name, count(*) as count from Person group by last_name offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"; assertThat(selectStatement.getSelectStatement()).isEqualTo(expected); List> rows = mapper.generalSelect(selectStatement); diff --git a/src/test/java/examples/joins/JoinMapperTest.java b/src/test/java/examples/joins/JoinMapperTest.java index db76daa5d..facc1c246 100644 --- a/src/test/java/examples/joins/JoinMapperTest.java +++ b/src/test/java/examples/joins/JoinMapperTest.java @@ -595,7 +595,7 @@ public void testOffsetOnlyAfterJoin() { String expectedStatment = "select ol.order_id, ol.quantity, im.item_id, im.description" + " from ItemMaster im left join OrderLine ol on ol.item_id = im.item_id" - + " offset #{parameters._offset}"; + + " offset #{parameters._offset} rows"; assertThat(selectStatement.getSelectStatement()).isEqualTo(expectedStatment); List> rows = mapper.generalSelect(selectStatement); @@ -630,7 +630,7 @@ public void testOffsetAndFetchFirstAfterJoin() { String expectedStatment = "select ol.order_id, ol.quantity, im.item_id, im.description" + " from ItemMaster im left join OrderLine ol on ol.item_id = im.item_id" - + " offset #{parameters._offset} fetch first #{parameters._fetchFirstRows} rows only"; + + " offset #{parameters._offset} rows fetch first #{parameters._fetchFirstRows} rows only"; assertThat(selectStatement.getSelectStatement()).isEqualTo(expectedStatment); List> rows = mapper.generalSelect(selectStatement);