Skip to content

Commit 50d3e8b

Browse files
committed
limit 0 and limit null included
1 parent f2a0c10 commit 50d3e8b

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

src/test/java/net/sf/jsqlparser/test/select/SelectTest.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,6 +216,47 @@ public void testLimit() throws JSQLParserException {
216216

217217
Select select = (Select) parserManager.parse(new StringReader(statement));
218218

219+
assertEquals(3, ((PlainSelect) select.getSelectBody()).getLimit().getOffset());
220+
assertTrue(((PlainSelect) select.getSelectBody()).getLimit().isRowCountJdbcParameter());
221+
assertFalse(((PlainSelect) select.getSelectBody()).getLimit().isOffsetJdbcParameter());
222+
assertFalse(((PlainSelect) select.getSelectBody()).getLimit().isLimitAll());
223+
224+
// toString uses standard syntax
225+
statement = "SELECT * FROM mytable WHERE mytable.col = 9 LIMIT ? OFFSET 3";
226+
assertSqlCanBeParsedAndDeparsed(statement);
227+
228+
statement = "SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?";
229+
select = (Select) parserManager.parse(new StringReader(statement));
230+
231+
assertEquals(0, ((PlainSelect) select.getSelectBody()).getLimit().getRowCount());
232+
assertTrue(((PlainSelect) select.getSelectBody()).getLimit().isOffsetJdbcParameter());
233+
assertFalse(((PlainSelect) select.getSelectBody()).getLimit().isLimitAll());
234+
assertStatementCanBeDeparsedAs(select, statement);
235+
236+
statement = "(SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?) UNION "
237+
+ "(SELECT * FROM mytable2 WHERE mytable2.col = 9 OFFSET ?) LIMIT 3, 4";
238+
select = (Select) parserManager.parse(new StringReader(statement));
239+
SetOperationList setList = (SetOperationList) select.getSelectBody();
240+
assertEquals(3, setList.getLimit().getOffset());
241+
assertEquals(4, setList.getLimit().getRowCount());
242+
243+
// toString uses standard syntax
244+
statement = "(SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?) UNION "
245+
+ "(SELECT * FROM mytable2 WHERE mytable2.col = 9 OFFSET ?) LIMIT 4 OFFSET 3";
246+
assertSqlCanBeParsedAndDeparsed(statement);
247+
248+
statement = "(SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?) UNION ALL "
249+
+ "(SELECT * FROM mytable2 WHERE mytable2.col = 9 OFFSET ?) UNION ALL "
250+
+ "(SELECT * FROM mytable3 WHERE mytable4.col = 9 OFFSET ?) LIMIT 4 OFFSET 3";
251+
assertSqlCanBeParsedAndDeparsed(statement);
252+
253+
}
254+
255+
public void testLimit2() throws JSQLParserException {
256+
String statement = "SELECT * FROM mytable WHERE mytable.col = 9 LIMIT 3, ?";
257+
258+
Select select = (Select) parserManager.parse(new StringReader(statement));
259+
219260
assertEquals(3, ((PlainSelect) select.getSelectBody()).getLimit().getOffset());
220261
assertTrue(((PlainSelect) select.getSelectBody()).getLimit().isRowCountJdbcParameter());
221262
assertFalse(((PlainSelect) select.getSelectBody()).getLimit().isOffsetJdbcParameter());

0 commit comments

Comments
 (0)