@@ -579,7 +579,7 @@ public void testSelectItems() throws JSQLParserException {
579
579
580
580
public void testUnion () throws JSQLParserException {
581
581
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" ;
583
583
584
584
Select select = (Select ) parserManager .parse (new StringReader (statement ));
585
585
SetOperationList setList = (SetOperationList ) select .getSelectBody ();
@@ -593,9 +593,31 @@ public void testUnion() throws JSQLParserException {
593
593
// use standard limit syntax
594
594
String statementToString = "SELECT * FROM mytable WHERE mytable.col = 9 UNION "
595
595
+ "SELECT * FROM mytable3 WHERE mytable3.col = ? UNION "
596
- + "SELECT * FROM mytable2 LIMIT 4 OFFSET 3 " ;
596
+ + "SELECT * FROM mytable2 LIMIT 3, 4 " ;
597
597
assertStatementCanBeDeparsedAs (select , statementToString );
598
598
}
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
+
599
621
600
622
public void testDistinct () throws JSQLParserException {
601
623
String statement = "SELECT DISTINCT ON (myid) myid, mycol FROM mytable WHERE mytable.col = 9" ;
0 commit comments