mirror of https://github.com/apache/druid.git
bf39b4d313
* Window planning: use collation traits, improve subquery logic. SQL changes: 1) Attach RelCollation (sorting) trait to any PartialDruidQuery that ends in AGGREGATE or AGGREGATE_PROJECT. This allows planning to take advantage of the fact that Druid sorts by dimensions when doing aggregations. 2) Windowing: inspect RelCollation trait from input, and insert naiveSort if, and only if, necessary. 3) Windowing: add support for Project after Window, when the Project is a simple mapping. Helps eliminate subqueries. 4) DruidRules: update logic for considering subqueries to reflect that subqueries are not required to be GroupBys, and that we have a bunch of new Stages now. With all of this evolution that has happened, the old logic didn't quite make sense. Native changes: 1) Use merge sort (stable) rather than quicksort when sorting RowsAndColumns. Makes it easier to write test cases for plans that involve re-sorting the data. * Changes from review. * Mark the bad test as failing. * Additional update. * Fix failingTest. * Fix tests. * Mark a var final. |
||
---|---|---|
.. | ||
src | ||
pom.xml |