Xuebin Su has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/24105


Change subject: IMPALA-2083: Add PIVOT clause
......................................................................

IMPALA-2083: Add PIVOT clause

This patch adds support for the PIVOT clause by adding a new subclass
of `TableRef` called `PivotTableRef`. The concepts and the examples are
explained in `UnpivotTableRef.java`.

The changes are mostly in the frontend:

- A new keyword `PIVOT` is added.
- In the parsing phase, a PIVOT clause will be parsed into a
  `PivotTableRef`.
- Then, in the analysis phase, the `PivotTableRef` will be translated
  into a `MultiAggregateInfo`.
- Finally, in the planning phase, `AggregationNode`s will be created
  from the `MultiAggregateInfo`.

No new plan node or new execution node is added.

Testing:
- Added E2E tests in test_pivot_clause.py
- Added FE tests to ensure that predicates can be pushed down to the
  SCAN nodes and the result table of PIVOT can be broadcast for JOIN.

Change-Id: Ib799b772be18d2a3db8983b24e1068e7dfdf1ca9
---
M be/src/exprs/aggregate-functions-ir.cc
M fe/src/main/cup/sql-parser.cup
M fe/src/main/java/org/apache/impala/analysis/AggregateInfo.java
M fe/src/main/java/org/apache/impala/analysis/Analyzer.java
M fe/src/main/java/org/apache/impala/analysis/ExprSubstitutionMap.java
M fe/src/main/java/org/apache/impala/analysis/FromClause.java
M fe/src/main/java/org/apache/impala/analysis/MultiAggregateInfo.java
A fe/src/main/java/org/apache/impala/analysis/PivotTableRef.java
M fe/src/main/java/org/apache/impala/analysis/QueryStmt.java
M fe/src/main/java/org/apache/impala/analysis/SelectStmt.java
M fe/src/main/java/org/apache/impala/analysis/SetOperationStmt.java
M fe/src/main/java/org/apache/impala/analysis/TableRef.java
M fe/src/main/java/org/apache/impala/catalog/BuiltinsDb.java
M fe/src/main/java/org/apache/impala/planner/AggregationNode.java
M fe/src/main/java/org/apache/impala/planner/SingleNodePlanner.java
M fe/src/main/jflex/sql-scanner.flex
M fe/src/test/java/org/apache/impala/analysis/AnalyzeStmtsTest.java
M fe/src/test/java/org/apache/impala/planner/PlannerTest.java
A testdata/workloads/functional-planner/queries/PlannerTest/pivot-clause.test
A testdata/workloads/functional-query/queries/QueryTest/pivot-clause.test
A tests/query_test/test_pivot_clause.py
21 files changed, 1,062 insertions(+), 52 deletions(-)



  git pull ssh://gerrit.cloudera.org:29418/Impala-ASF refs/changes/05/24105/2
--
To view, visit http://gerrit.cloudera.org:8080/24105
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib799b772be18d2a3db8983b24e1068e7dfdf1ca9
Gerrit-Change-Number: 24105
Gerrit-PatchSet: 2
Gerrit-Owner: Xuebin Su <[email protected]>

Reply via email to