[
https://issues.apache.org/jira/browse/CALCITE-1586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Julian Hyde updated CALCITE-1586:
---------------------------------
Description:
JDBC adapter generates wrong SQL if set operation (UNION, INTERSECT or MINUS)
has more than two inputs. In union example, after UnionMergeRule, the union
input is convert to three input, and rel-to-sql convert result is wrong.
input sql
{code:sql}
SELECT *
FROM (SELECT \"product_id\"
FROM \"foodmart\".\"product\"
UNION ALL
SELECT \"product_id\"
FROM \"foodmart\".\"sales_fact_1997\")
UNION ALL
SELECT \"product_class_id\" AS \"PRODUCT_ID\"
FROM \"foodmart\".\"product_class\"
{code}
output sql
{code:sql}
SELECT \"product_id\"
FROM \"foodmart\".\"product\"
UNION ALL
SELECT \"product_id\"
FROM \"foodmart\".\"sales_fact_1997\"
{code}
the last union query is lost.
was:
in union example, after UnionMergeRule, the union input is convert to three
input, and rel to sql convert result is wrong.
inputsql
{code:sql}
SELECT *
FROM (SELECT \"product_id\"
FROM \"foodmart\".\"product\"
UNION ALL
SELECT \"product_id\"
FROM \"foodmart\".\"sales_fact_1997\")
UNION ALL
SELECT \"product_class_id\" AS \"PRODUCT_ID\"
FROM \"foodmart\".\"product_class\"
{code}
output sql
{code:sql}
SELECT \"product_id\"
FROM \"foodmart\".\"product\"
UNION ALL
SELECT \"product_id\"
FROM \"foodmart\".\"sales_fact_199
{code}
the lastest union query is lost.
> JDBC adapter generates wrong SQL if UNION has more than two inputs
> ------------------------------------------------------------------
>
> Key: CALCITE-1586
> URL: https://issues.apache.org/jira/browse/CALCITE-1586
> Project: Calcite
> Issue Type: Bug
> Components: jdbc-adapter
> Affects Versions: 1.10.0
> Environment: NA
> Reporter: Zhiqiang He
> Assignee: Julian Hyde
> Priority: Critical
> Fix For: 1.12.0
>
>
> JDBC adapter generates wrong SQL if set operation (UNION, INTERSECT or MINUS)
> has more than two inputs. In union example, after UnionMergeRule, the union
> input is convert to three input, and rel-to-sql convert result is wrong.
> input sql
> {code:sql}
> SELECT *
> FROM (SELECT \"product_id\"
> FROM \"foodmart\".\"product\"
> UNION ALL
> SELECT \"product_id\"
> FROM \"foodmart\".\"sales_fact_1997\")
> UNION ALL
> SELECT \"product_class_id\" AS \"PRODUCT_ID\"
> FROM \"foodmart\".\"product_class\"
> {code}
> output sql
> {code:sql}
> SELECT \"product_id\"
> FROM \"foodmart\".\"product\"
> UNION ALL
> SELECT \"product_id\"
> FROM \"foodmart\".\"sales_fact_1997\"
> {code}
> the last union query is lost.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)