You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Incorrect association of LIMIT and OFFSET in a union query #903
The LIMIT and OFFSET present at the end of a UNION query should be associated with the UNION query as a whole. Currently, it is being associated with the last SELECT query in the UNION.
To Reproduce
Steps to reproduce the behavior:
Example SQL
SELECT*FROM table1 UNIONSELECT*FROM table2 ORDER BY col LIMIT4 OFFSET 5
Parsing this SQL using JSqlParser with this statements
SelectunionQuery = (Select) CCJSqlParserUtil.parse("SELECT * FROM table1 UNION SELECT * FROM table2 ORDER BY col LIMIT 4 OFFSET 5");
SetOperationListunionQueries = (SetOperationList) unionQuery.getSelectBody();
System.out.println("Limit: " + unionQueries.getLimit() + "; Offset: " + unionQueries.getOffset());
unionQueries.getSelects().forEach(query -> {
PlainSelectplainQuery = (PlainSelect) query;
System.out.println("Limit: " + plainQuery.getLimit() + "; Offset: " + plainQuery.getOffset());
});
Activity
manticore-projects commentedon Mar 25, 2023
Works with JSQLParser 4.6, closed.
