You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Victoria Markman (JIRA)" <ji...@apache.org> on 2015/06/29 23:51:05 UTC

[jira] [Created] (DRILL-3420) Final sort can be dropped in some cases when result of window operator is already sorted on the same columns

Victoria Markman created DRILL-3420:
---------------------------------------

             Summary: Final sort can be dropped in some cases when result of window operator is already sorted on the same columns
                 Key: DRILL-3420
                 URL: https://issues.apache.org/jira/browse/DRILL-3420
             Project: Apache Drill
          Issue Type: Bug
          Components: Query Planning & Optimization
    Affects Versions: 1.0.0
            Reporter: Victoria Markman
            Assignee: Jinfeng Ni
             Fix For: 1.2.0


In the example query, output of the window operator is already sorted on the same columns that are specified in "order by clause" Last sort is redundant.

{code}
0: jdbc:drill:schema=dfs> explain plan for select b1, c1, a1, sum(a1) over(partition by b1 order by c1, a1) from t1 order by 1,2,3;
+------+------+
| text | json |
+------+------+
| 00-00    Screen
00-01      Project(b1=[$0], c1=[$1], a1=[$2], EXPR$3=[$3])
00-02        SelectionVectorRemover
00-03          Sort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC])
00-04            Project(b1=[$0], c1=[$1], a1=[$2], EXPR$3=[CASE(>($3, 0), $4, null)])
00-05              Window(window#0=[window(partition {0} order by [1, 2] range between UNBOUNDED PRECEDING and CURRENT ROW aggs [COUNT($2), $SUM0($2)])])
00-06                SelectionVectorRemover
00-07                  Sort(sort0=[$0], sort1=[$1], sort2=[$2], dir0=[ASC], dir1=[ASC], dir2=[ASC])
00-08                    Scan(groupscan=[ParquetGroupScan [entries=[ReadEntryWithPath [path=maprfs:///drill/testdata/subqueries/t1]], selectionRoot=/drill/testdata/subqueries/t1, numFiles=1, columns=[`b1`, `c1`, `a1`]]])
{code}

Note to QA: when this enhancement is implemented, we need to make sure that we have cases where sort order is destroyed by subsequent operation on top of window. In these cases "sort should still be planned.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)