[ https://issues.apache.org/jira/browse/DRILL-3679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14709493#comment-14709493 ]
Deneche A. Hakim commented on DRILL-3679: ----------------------------------------- Looking at the plan, this looks similar to DRILL-3680: the Project operator couldn't find {{w0$o00}} because both window functions output to the same field {{w0$o0}} {noformat} explain plan for select rnum, ntile(4) over(order by position_id) from (select position_id, row_number() over(order by position_id) as rnum from cp.`employee.json`); 00-00 Screen 00-01 ProjectAllowDup(rnum=[$0], EXPR$1=[$1]) 00-02 Project(w0$o0=[$1], w0$o00=[$2]) 00-03 Window(window#0=[window(partition {} order by [0] range between UNBOUNDED PRECEDING and CURRENT ROW aggs [NTILE($2)])]) 00-04 SelectionVectorRemover 00-05 Sort(sort0=[$0], dir0=[ASC]) 00-06 Project(position_id=[$1], w0$o0=[$2]) 00-07 Window(window#0=[window(partition {} order by [1] range between UNBOUNDED PRECEDING and CURRENT ROW aggs [ROW_NUMBER()])]) 00-08 SelectionVectorRemover 00-09 Sort(sort0=[$1], dir0=[ASC]) 00-10 Project(T7¦¦*=[$0], position_id=[$1]) 00-11 Scan(groupscan=[EasyGroupScan [selectionRoot=classpath:/employee.json, numFiles=1, columns=[`*`], files=[classpath:/employee.json]]]) ... }, { "pop" : "window", "@id" : 7, "child" : 8, "aggregations" : [ { "ref" : "`w0$o0`", "expr" : "row_number(1) " } ], "orderings" : [ { "expr" : "`position_id`", "order" : "ASC", "nullDirection" : "UNSPECIFIED" } ], "start" : -9223372036854775808, "end" : -9223372036854775808, "initialAllocation" : 1000000, "maxAllocation" : 10000000000, "withins" : [ ], "cost" : 463.0 }, ... }, { "pop" : "window", "@id" : 3, "child" : 4, "aggregations" : [ { "ref" : "`w0$o0`", "expr" : "ntile(4) " } ], "orderings" : [ { "expr" : "`position_id`", "order" : "ASC", "nullDirection" : "UNSPECIFIED" } ], "start" : -9223372036854775808, "end" : -9223372036854775808, "initialAllocation" : 1000000, "maxAllocation" : 10000000000, "withins" : [ ], "cost" : 463.0 }, { "pop" : "project", "@id" : 2, "exprs" : [ { "ref" : "`w0$o0`", "expr" : "`w0$o0`" }, { "ref" : "`w0$o00`", "expr" : "`w0$o0`" } ], "child" : 3, "initialAllocation" : 1000000, "maxAllocation" : 10000000000, "cost" : 463.0 }, { ... +------+------+ {noformat} > IOB Exception : when window functions used in outer and inner query > ------------------------------------------------------------------- > > Key: DRILL-3679 > URL: https://issues.apache.org/jira/browse/DRILL-3679 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Affects Versions: 1.2.0 > Environment: private-branch > https://github.com/adeneche/incubator-drill/tree/new-window-funcs > Reporter: Khurram Faraaz > Assignee: Deneche A. Hakim > Labels: window_function > Fix For: 1.2.0 > > > IOB Exception seen when two different window functions are used in inner and > outer queries. > {code} > 0: jdbc:drill:schema=dfs.tmp> select rnum, position_id, ntile(4) over(order > by position_id) from (select position_id, row_number() over(order by > position_id) as rnum from cp.`employee.json`); > java.lang.RuntimeException: java.sql.SQLException: SYSTEM ERROR: > IndexOutOfBoundsException: index: 0, length: 4 (expected: range(0, 0)) > Fragment 0:0 > [Error Id: 8e0cbf82-842d-4fa7-ab0d-1d982a3d6c24 on centos-03.qa.lab:31010] > at sqlline.IncrementalRows.hasNext(IncrementalRows.java:73) > at > sqlline.TableOutputFormat$ResizingRowsProvider.next(TableOutputFormat.java:87) > at sqlline.TableOutputFormat.print(TableOutputFormat.java:118) > at sqlline.SqlLine.print(SqlLine.java:1583) > at sqlline.Commands.execute(Commands.java:852) > at sqlline.Commands.sql(Commands.java:751) > at sqlline.SqlLine.dispatch(SqlLine.java:738) > at sqlline.SqlLine.begin(SqlLine.java:612) > at sqlline.SqlLine.start(SqlLine.java:366) > at sqlline.SqlLine.main(SqlLine.java:259) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)