@@ -220,17 +220,37 @@ public void testLimit() throws JSQLParserException {
220220 assertTrue (((PlainSelect ) select .getSelectBody ()).getLimit ().isRowCountJdbcParameter ());
221221 assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isOffsetJdbcParameter ());
222222 assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitAll ());
223+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitNull ());
223224
224225 // toString uses standard syntax
225226 statement = "SELECT * FROM mytable WHERE mytable.col = 9 LIMIT ? OFFSET 3" ;
226227 assertSqlCanBeParsedAndDeparsed (statement );
227228
228- statement = "SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ? " ;
229+ statement = "SELECT * FROM mytable WHERE mytable.col = 9 LIMIT NULL OFFSET 3 " ;
229230 select = (Select ) parserManager .parse (new StringReader (statement ));
231+ assertEquals (-1 , ((PlainSelect ) select .getSelectBody ()).getLimit ().getRowCount ());
232+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isRowCountJdbcParameter ());
233+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isOffsetJdbcParameter ());
234+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitAll ());
235+ assertTrue (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitNull ());
236+ assertSqlCanBeParsedAndDeparsed (statement );
230237
238+ statement = "SELECT * FROM mytable WHERE mytable.col = 9 LIMIT 0 OFFSET 3" ;
239+ select = (Select ) parserManager .parse (new StringReader (statement ));
231240 assertEquals (0 , ((PlainSelect ) select .getSelectBody ()).getLimit ().getRowCount ());
241+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isRowCountJdbcParameter ());
242+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isOffsetJdbcParameter ());
243+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitAll ());
244+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitNull ());
245+ assertSqlCanBeParsedAndDeparsed (statement );
246+
247+ statement = "SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?" ;
248+ select = (Select ) parserManager .parse (new StringReader (statement ));
249+
250+ assertEquals (-1 , ((PlainSelect ) select .getSelectBody ()).getLimit ().getRowCount ());
232251 assertTrue (((PlainSelect ) select .getSelectBody ()).getLimit ().isOffsetJdbcParameter ());
233252 assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitAll ());
253+ assertFalse (((PlainSelect ) select .getSelectBody ()).getLimit ().isLimitNull ());
234254 assertStatementCanBeDeparsedAs (select , statement );
235255
236256 statement = "(SELECT * FROM mytable WHERE mytable.col = 9 OFFSET ?) UNION "
@@ -249,7 +269,6 @@ public void testLimit() throws JSQLParserException {
249269 + "(SELECT * FROM mytable2 WHERE mytable2.col = 9 OFFSET ?) UNION ALL "
250270 + "(SELECT * FROM mytable3 WHERE mytable4.col = 9 OFFSET ?) LIMIT 4 OFFSET 3" ;
251271 assertSqlCanBeParsedAndDeparsed (statement );
252-
253272 }
254273
255274 public void testTop () throws JSQLParserException {
0 commit comments