[
https://issues.apache.org/jira/browse/DRILL-6703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Volodymyr Vysotskyi updated DRILL-6703:
---------------------------------------
Labels: ready-to-commit (was: )
> Query with complex expressions in lateral and unnest fails with
> CannotPlanException
> -----------------------------------------------------------------------------------
>
> Key: DRILL-6703
> URL: https://issues.apache.org/jira/browse/DRILL-6703
> Project: Apache Drill
> Issue Type: Bug
> Components: Query Planning & Optimization
> Affects Versions: 1.14.0
> Reporter: Volodymyr Vysotskyi
> Assignee: Volodymyr Vysotskyi
> Priority: Major
> Labels: ready-to-commit
> Fix For: 1.15.0
>
>
> Queries like this:
> {code:sql}
> select l.name from cp.`lateraljoin/nested-customer.parquet` c,
> lateral (select u.item.i_name as name from unnest(c.orders[0].items) as
> u(item)) l limit 1
> {code}
> fail with {{CannotPlanException}}:
> {noformat}
> 1:07:15.750 [2482e64c-9c2c-70b6-324e-848de16cb4c3:foreman] ERROR
> o.a.d.e.p.s.h.DefaultSqlHandler - Node [rel#142:Subset#8.LOGICAL.ANY([]).[]]
> could not be implemented; planner state:
> Root: rel#142:Subset#8.LOGICAL.ANY([]).[]
> Original rel:
> LogicalSort(subset=[rel#142:Subset#8.LOGICAL.ANY([]).[]], fetch=[1]):
> rowcount = 1.0, cumulative cost = {1.0 rows, 4.0 cpu, 0.0 io, 0.0 network,
> 0.0 memory}, id = 140
> LogicalProject(subset=[rel#139:Subset#7.NONE.ANY([]).[]], name=[$2]):
> rowcount = 1.0, cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io, 0.0 network,
> 0.0 memory}, id = 138
> LogicalCorrelate(subset=[rel#137:Subset#6.NONE.ANY([]).[]],
> correlation=[$cor0], joinType=[inner], requiredColumns=[{1}]): rowcount =
> 1.0, cumulative cost = {inf}, id = 136
> EnumerableTableScan(subset=[rel#126:Subset#0.ENUMERABLE.ANY([]).[]],
> table=[[cp, lateraljoin/nested-customer.parquet]]): rowcount = 100.0,
> cumulative cost = {100.0 rows, 101.0 cpu, 0.0 io, 0.0 network, 0.0 memory},
> id = 9
> LogicalProject(subset=[rel#135:Subset#5.NONE.ANY([]).[]],
> name=[ITEM($0, 'i_name')]): rowcount = 1.0, cumulative cost = {1.0 rows, 1.0
> cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 134
> LogicalProject(subset=[rel#133:Subset#4.NONE.ANY([]).[]], item=[$0]):
> rowcount = 1.0, cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io, 0.0 network,
> 0.0 memory}, id = 132
> Uncollect(subset=[rel#131:Subset#3.NONE.ANY([]).[]]): rowcount =
> 1.0, cumulative cost = {1.0 rows, 1.0 cpu, 0.0 io, 0.0 network, 0.0 memory},
> id = 130
> LogicalProject(subset=[rel#129:Subset#2.NONE.ANY([]).[]],
> EXPR$0=[ITEM(ITEM($cor0.orders, 0), 'items')]): rowcount = 1.0, cumulative
> cost = {1.0 rows, 1.0 cpu, 0.0 io, 0.0 network, 0.0 memory}, id = 128
> LogicalValues(subset=[rel#127:Subset#1.NONE.ANY([]).[0]],
> tuples=[[{ 0 }]]): rowcount = 1.0, cumulative cost = {1.0 rows, 1.0 cpu, 0.0
> io, 0.0 network, 0.0 memory}, id = 10
> {noformat}
> Due to the project from the right side of correlate,
> {{ProjectComplexRexNodeCorrelateTransposeRule}} cannot be applied, so later
> {{DrillUnnestRule}} cannot convert {{Uncollect}} with project with complex
> expressions to {{DrillUnnestRel}}.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)