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]>
