[ https://issues.apache.org/jira/browse/CALCITE-5042?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Roman Churganov updated CALCITE-5042: ------------------------------------- Description: Execute query like: {code:sql} SELECT f.id FROM sch1.foo as f JOIN sch1.foo br ON br.id = f.id JOIN sch1.baz bz ON bz.id = br.id WHERE f.id = '0' {code} {{Calcite prepares SQL using JDBC adapter like: }} {code:sql} {{SELECT "t1"."ID" FROM ( SELECT "ID" FROM "BAZ" ) AS "t"}} INNER JOIN ( {{ ( SELECT "ID" FROM "FOO" WHERE "ID" = '0') AS "t1"}} {{ INNER JOIN (SELECT "ID" FROM "FOO") AS "t2" }} {{ ON "t1"."ID" = "t2"."ID"}} {{) ON "t"."ID" = "t2"."ID" }} {code} though most of the databases can execute it, but Caclite itself cannot parse and gives error like: Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered "AS" at line 3, column 88. Was expecting one of: "EXCEPT" ... "FETCH" ... "INTERSECT" ... "LIMIT" ... "OFFSET" ... "ORDER" ... "MINUS" ... "UNION" ... ")" ... "." ... "NOT" ... "IN" ... {{see example [https://www.db-fiddle.com/f/oCr3VKkT2QmKgWro54Wzfc/4] }} was: Execute query like: {code:sql} {{SELECT f.id FROM sch1.foo as f}} {{ JOIN sch1.foo br ON br.id = f.id }} {{ JOIN sch1.baz bz ON bz.id = br.id }} {{ WHERE f.id = '0' }} {code} {{Calcite prepares SQL using JDBC adapter like: }} {{SELECT "t1"."ID" FROM ( SELECT "ID" FROM "BAZ" ) AS "t"}} INNER JOIN ( {{ ( SELECT "ID" FROM "FOO" WHERE "ID" = '0') AS "t1"}} {{ INNER JOIN (SELECT "ID" FROM "FOO") AS "t2" }} {{ ON "t1"."ID" = "t2"."ID"}} {{) ON "t"."ID" = "t2"."ID" }} though most of the databases can execute it, but Caclite itself cannot parse and gives error like: Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered "AS" at line 3, column 88. Was expecting one of: "EXCEPT" ... "FETCH" ... "INTERSECT" ... "LIMIT" ... "OFFSET" ... "ORDER" ... "MINUS" ... "UNION" ... ")" ... "." ... "NOT" ... "IN" ... {{see example [https://www.db-fiddle.com/f/oCr3VKkT2QmKgWro54Wzfc/4] }} > Incorrect syntax in sub-query > ----------------------------- > > Key: CALCITE-5042 > URL: https://issues.apache.org/jira/browse/CALCITE-5042 > Project: Calcite > Issue Type: Bug > Components: core > Affects Versions: 1.29.0 > Reporter: Roman Churganov > Priority: Blocker > > Execute query like: > {code:sql} > SELECT f.id FROM sch1.foo as f > JOIN sch1.foo br ON br.id = f.id > JOIN sch1.baz bz ON bz.id = br.id > WHERE f.id = '0' > {code} > {{Calcite prepares SQL using JDBC adapter like: }} > {code:sql} > {{SELECT "t1"."ID" FROM ( SELECT "ID" FROM "BAZ" ) AS "t"}} > INNER JOIN ( > {{ ( SELECT "ID" FROM "FOO" WHERE "ID" = '0') AS "t1"}} > {{ INNER JOIN (SELECT "ID" FROM "FOO") AS "t2" }} > {{ ON "t1"."ID" = "t2"."ID"}} > {{) ON "t"."ID" = "t2"."ID" }} > {code} > though most of the databases can execute it, but Caclite itself cannot parse > and gives error like: > Caused by: org.apache.calcite.sql.parser.impl.ParseException: Encountered > "AS" at line 3, column 88. > Was expecting one of: > "EXCEPT" ... > "FETCH" ... > "INTERSECT" ... > "LIMIT" ... > "OFFSET" ... > "ORDER" ... > "MINUS" ... > "UNION" ... > ")" ... > "." ... > "NOT" ... > "IN" ... > {{see example [https://www.db-fiddle.com/f/oCr3VKkT2QmKgWro54Wzfc/4] }} > -- This message was sent by Atlassian Jira (v8.20.1#820001)