-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61992/
-----------------------------------------------------------
(Updated Aug. 30, 2017, 8:03 p.m.)
Review request for lens.
Bugs: LENS-1468
https://issues.apache.org/jira/browse/LENS-1468
Repository: lens
Description
-------
The issue is not seen in test cases yet since somehow the order of child
candidates in {{JoinCandidate}} has been fixed. We have observed the order
being non-deterministic in production. And in one ordering, having clause works
fine and in another it doesn't. Will be adding test cases to reproduce this
issue and the fix as well.
Diffs
-----
lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java
8906fae1915e71a38e18f42145825afcfe1a1d0b
lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java
993aa4cbf26d4771bbe714c95abc471534802780
lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java
9dc7ee67deb7495f99b53b01839722fb42446d03
lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
cf29dff9058aa98bccff9d986fb3756438b50b83
lens-cube/src/test/resources/schema/cubes/base/basecube.xml
6bb5eb9c0cefbec3bf85bf245a3d25b9b4c67b6e
lens-cube/src/test/resources/schema/cubes/derived/der2.xml
337e7f450f96a3b1459556655680388ae2445f25
Diff: https://reviews.apache.org/r/61992/diff/1/
Testing (updated)
-------
This is the output of the newly added test case after reverting code fixes:
```
java.lang.AssertionError: having1: HAVING (((sum((basecube.alias1)) +
sum((basecube.alias3)) + sum((basecube.alias4))) > 0) and
((floor(sum((basecube.alias1))) + 0) > 10))
having2: HAVING (((sum((basecube.alias1)) + sum((basecube.alias1)) +
sum((basecube.alias1))) > 0) and ((floor(sum((basecube.alias5))) + 0) > 10))
expected [HAVING (((sum((basecube.alias1)) + sum((basecube.alias1)) +
sum((basecube.alias1))) > 0) and ((floor(sum((basecube.alias5))) + 0) > 10))]
but found [HAVING (((sum((basecube.alias1)) + sum((basecube.alias3)) +
sum((basecube.alias4))) > 0) and ((floor(sum((basecube.alias1))) + 0) > 10))]
Expected :HAVING (((sum((basecube.alias1)) + sum((basecube.alias1)) +
sum((basecube.alias1))) > 0) and ((floor(sum((basecube.alias5))) + 0) > 10))
Actual :HAVING (((sum((basecube.alias1)) + sum((basecube.alias3)) +
sum((basecube.alias4))) > 0) and ((floor(sum((basecube.alias1))) + 0) > 10))
```
Thanks,
Rajat Khandelwal