@@ -437,13 +437,31 @@ public void testSkip() throws JSQLParserException {
437437 final Skip skip = selectBody .getSkip ();
438438 assertEquals ((long ) 5 , (long ) skip .getRowCount ());
439439 assertNull (skip .getJdbcParameter ());
440+ assertNull (skip .getVariable ());
440441
441442 final List <SelectItem > selectItems = selectBody .getSelectItems ();
442443 assertEquals (2 , selectItems .size ());
443444 assertEquals (firstColumnName , selectItems .get (0 ).toString ());
444445 assertEquals (secondColumnName , selectItems .get (1 ).toString ());
445446
446447 assertStatementCanBeDeparsedAs (select , statement );
448+
449+ final String statement2 = "SELECT SKIP skipVar c1, c2 FROM t" ;
450+ final Select select2 = (Select ) parserManager .parse (new StringReader (statement2 ));
451+
452+ final PlainSelect selectBody2 = (PlainSelect ) select2 .getSelectBody ();
453+
454+ final Skip skip2 = selectBody2 .getSkip ();
455+ assertNull (skip2 .getRowCount ());
456+ assertNull (skip2 .getJdbcParameter ());
457+ assertEquals ("skipVar" , skip2 .getVariable ());
458+
459+ final List <SelectItem > selectItems2 = selectBody2 .getSelectItems ();
460+ assertEquals (2 , selectItems2 .size ());
461+ assertEquals ("c1" , selectItems2 .get (0 ).toString ());
462+ assertEquals ("c2" , selectItems2 .get (1 ).toString ());
463+
464+ assertStatementCanBeDeparsedAs (select2 , statement2 );
447465 }
448466
449467 public void testFirst () throws JSQLParserException {
@@ -465,6 +483,24 @@ public void testFirst() throws JSQLParserException {
465483 assertEquals (secondColumnName , selectItems .get (1 ).toString ());
466484
467485 assertStatementCanBeDeparsedAs (select , statement );
486+
487+
488+ final String statement2 = "SELECT FIRST firstVar c1, c2 FROM t" ;
489+ final Select select2 = (Select ) parserManager .parse (new StringReader (statement2 ));
490+
491+ final PlainSelect selectBody2 = (PlainSelect ) select2 .getSelectBody ();
492+
493+ final First first2 = selectBody2 .getFirst ();
494+ assertNull (first2 .getRowCount ());
495+ assertNull (first2 .getJdbcParameter ());
496+ assertEquals ("firstVar" , first2 .getVariable ());
497+
498+ final List <SelectItem > selectItems2 = selectBody2 .getSelectItems ();
499+ assertEquals (2 , selectItems2 .size ());
500+ assertEquals ("c1" , selectItems2 .get (0 ).toString ());
501+ assertEquals ("c2" , selectItems2 .get (1 ).toString ());
502+
503+ assertStatementCanBeDeparsedAs (select2 , statement2 );
468504 }
469505
470506 public void testFirstWithKeywordLimit () throws JSQLParserException {
@@ -490,7 +526,7 @@ public void testFirstWithKeywordLimit() throws JSQLParserException {
490526 }
491527
492528 public void testSkipFirst () throws JSQLParserException {
493- final String statement = "SELECT SKIP ?1 FIRST ?2 c1, c2 FROM t1" ;
529+ final String statement = "SELECT SKIP ?1 FIRST f1 c1, c2 FROM t1" ;
494530 final Select select = (Select ) parserManager .parse (new StringReader (statement ));
495531
496532 final PlainSelect selectBody = (PlainSelect ) select .getSelectBody ();
@@ -499,11 +535,12 @@ public void testSkipFirst() throws JSQLParserException {
499535 assertNotNull (skip .getJdbcParameter ());
500536 assertNotNull (skip .getJdbcParameter ().getIndex ());
501537 assertEquals ((int ) 1 , (int ) skip .getJdbcParameter ().getIndex ());
538+ assertNull (skip .getVariable ());
502539 final First first = selectBody .getFirst ();
503- assertNotNull (first .getJdbcParameter ());
504- assertNotNull (first .getJdbcParameter (). getIndex ());
505- assertEquals (( int ) 2 , ( int ) first .getJdbcParameter (). getIndex ());
506-
540+ assertNull (first .getJdbcParameter ());
541+ assertNull (first .getRowCount ());
542+ assertEquals ("f1" , first .getVariable ());
543+
507544 final List <SelectItem > selectItems = selectBody .getSelectItems ();
508545 assertEquals (2 , selectItems .size ());
509546 assertEquals ("c1" , selectItems .get (0 ).toString ());
0 commit comments