@@ -579,7 +579,7 @@ public void testSelectItems() throws JSQLParserException {
579579
580580 public void testUnion () throws JSQLParserException {
581581 String statement = "SELECT * FROM mytable WHERE mytable.col = 9 UNION "
582- + "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION " + "SELECT * FROM mytable2 LIMIT 3,4" ;
582+ + "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION " + "SELECT * FROM mytable2 LIMIT 3, 4" ;
583583
584584 Select select = (Select ) parserManager .parse (new StringReader (statement ));
585585 SetOperationList setList = (SetOperationList ) select .getSelectBody ();
@@ -593,9 +593,31 @@ public void testUnion() throws JSQLParserException {
593593 // use standard limit syntax
594594 String statementToString = "SELECT * FROM mytable WHERE mytable.col = 9 UNION "
595595 + "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION "
596- + "SELECT * FROM mytable2 LIMIT 4 OFFSET 3 " ;
596+ + "SELECT * FROM mytable2 LIMIT 3, 4 " ;
597597 assertStatementCanBeDeparsedAs (select , statementToString );
598598 }
599+
600+ public void testUnion2 () throws JSQLParserException {
601+ String statement = "SELECT * FROM mytable WHERE mytable.col = 9 UNION "
602+ + "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION " + "SELECT * FROM mytable2 LIMIT 3 OFFSET 4" ;
603+
604+ Select select = (Select ) parserManager .parse (new StringReader (statement ));
605+ SetOperationList setList = (SetOperationList ) select .getSelectBody ();
606+ assertEquals (3 , setList .getSelects ().size ());
607+ assertEquals ("mytable" , ((Table ) ((PlainSelect ) setList .getSelects ().get (0 )).getFromItem ()).getName ());
608+ assertEquals ("mytable3" , ((Table ) ((PlainSelect ) setList .getSelects ().get (1 )).getFromItem ()).getName ());
609+ assertEquals ("mytable2" , ((Table ) ((PlainSelect ) setList .getSelects ().get (2 )).getFromItem ()).getName ());
610+ assertEquals (0 , ((PlainSelect ) setList .getSelects ().get (2 )).getLimit ().getOffset ());
611+ assertEquals (4 , ((PlainSelect ) setList .getSelects ().get (2 )).getOffset ().getOffset ());
612+
613+ // use brakets for toString
614+ // use standard limit syntax
615+ String statementToString = "SELECT * FROM mytable WHERE mytable.col = 9 UNION "
616+ + "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION "
617+ + "SELECT * FROM mytable2 LIMIT 3 OFFSET 4" ;
618+ assertStatementCanBeDeparsedAs (select , statementToString );
619+ }
620+
599621
600622 public void testDistinct () throws JSQLParserException {
601623 String statement = "SELECT DISTINCT ON (myid) myid, mycol FROM mytable WHERE mytable.col = 9" ;
0 commit comments