-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/34399/
-----------------------------------------------------------
(Updated May 19, 2015, 11:12 a.m.)
Review request for lens, Jaideep dhok and Rajat Khandelwal.
Bugs: LENS-174
https://issues.apache.org/jira/browse/LENS-174
Repository: lens
Description
-------
Changes are the following :
- Fix Dimension.getColumnByName() to return expression column as well. This was
existing bug, got fixed now
- Adds ExpressionContext (new inner class) for each expression queried in
ExpressionResolver. And
- ExpressionContext is updated with ExpressionSpecContext (new inner class) for
each expression in expressioncolumn. It adds newer ExpressionSpecContext by
expanding all nested expressions.
- Some methods in AliasReplacer and ColumnResolver are made static sothat they
can called from ExpressionResolver as well.
- AggregateResolver wraps appropriate aggregate around fields in expressions,
along with ASTs
- CandidateTableResolver picks all facts if expression column is directly
available. if not, it checks if the expression is evaluatable by the candidate
table.
- Finally CubeQueryContext.toHQL() picks appropriate expressions for candidates
picked and replaces them in AST. A picked expression can add more tables to
joined.
Pending:
Fillin TODOs marked
- FieldValidator to validate derived cube corresponding to expression along
other fields qeuried
- TimerangeResolver to remove expressions which not valid in the range
- Add more testcases to cover cornercases
Diffs (updated)
-----
lens-cube/src/main/java/org/apache/lens/cube/metadata/Dimension.java 1a4b581
lens-cube/src/main/java/org/apache/lens/cube/metadata/ExprColumn.java a7f711f
lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
a25fae6
lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java 9d367c3
lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateFact.java 84e5341
lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java
a1fea16
lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
6b6a09b
lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java
1aa33db
lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
38b6429
lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
b7a92e7
lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java
7857868
lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
5355049
lens-cube/src/main/java/org/apache/lens/cube/parse/FieldValidator.java
fd8568f
lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 3e3534c
lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java
e5e7c56
lens-cube/src/main/java/org/apache/lens/cube/parse/TrackQueriedColumns.java
PRE-CREATION
lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 5737057
lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
2a8f082
lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionContext.java
PRE-CREATION
lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java
a78bcbd
lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
2c8dab3
lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java
4304f94
lens-cube/src/test/resources/log4j.properties f514648
Diff: https://reviews.apache.org/r/34399/diff/
Testing
-------
Almost lens-cube tests pass, a couple of them are failing. Working on fixing
them.
- Added new tests for picking different expressions of expression column
- Added new tests for picking materialized expression value soemtimes and
expression sometimes
Thanks,
Amareshwari Sriramadasu