[ https://issues.apache.org/jira/browse/CALCITE-5013?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jiajun Xie updated CALCITE-5013: -------------------------------- Description: - In standard SQL, the operand of union should not have limit or order by.So parse will fail in SqlParserTetest#testLimitUnion and SqlParserTetest#OrderUnion. - When users use parentheses, most engines allow it. See the discussion:CALCITE-1892. For simple example, parentheses control the scope of the limit {code:java} select "product_id" from "product" union all (select "product_id" from "product" limit 10){code} unparseBinarySyntax will miss parentheses, this change will affect semantics {code:java} SELECT \"product_id\" FROM \"foodmart\".\"product\" UNION ALL SELECT \"product_id\" FROM \"foodmart\".\"product\" FETCH NEXT 10 ROWS ONLY -- Affect semantics{code} was: - In standard SQL, the operand of union should not have limit or order by.So parse will fail in SqlParserTetest#testLimitUnion and SqlParserTetest#OrderUnion. - When users use parentheses, most engines allow it. See the discussion:[CALCITE-1892|https://issues.apache.org/jira/browse/CALCITE-1892]. > Parentheses should be retained when the operand of SetOp has limit or offset > ---------------------------------------------------------------------------- > > Key: CALCITE-5013 > URL: https://issues.apache.org/jira/browse/CALCITE-5013 > Project: Calcite > Issue Type: Bug > Components: core > Reporter: Jiajun Xie > Priority: Major > > - In standard SQL, the operand of union should not have limit or order by.So > parse will fail in SqlParserTetest#testLimitUnion and > SqlParserTetest#OrderUnion. > - When users use parentheses, most engines allow it. See the > discussion:CALCITE-1892. > For simple example, parentheses control the scope of the limit > {code:java} > select "product_id" from "product" > union all > (select "product_id" from "product" limit 10){code} > unparseBinarySyntax will miss parentheses, this change will affect semantics > {code:java} > SELECT \"product_id\" FROM \"foodmart\".\"product\" > UNION ALL > SELECT \"product_id\" FROM \"foodmart\".\"product\" > FETCH NEXT 10 ROWS ONLY -- Affect semantics{code} -- This message was sent by Atlassian Jira (v8.20.1#820001)