You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lens.apache.org by Rajat Khandelwal <ra...@gmail.com> on 2017/03/27 08:20:08 UTC

Review Request 57947: LENS-974: Add cube-segmentation for base cube

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs
-----

  lens-api/src/main/java/org/apache/lens/api/ToXMLString.java e74adc9a7289233876b2f3a1ad2f365a7466b65b 
  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/java/org/apache/lens/api/jaxb/LensJAXBContext.java 14fc4aa19a30e81863d0386734886d5258203e4b 
  lens-api/src/main/java/org/apache/lens/api/metastore/SchemaTraverser.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 060eb43c6d73e5f3780ab5915cb12b26a41a44af 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java feabf9c221fdcfb551aff7e6b80fba484133846e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java 896a7a1a3fafc1d4e49bc8cef08b22cb3712d245 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java 78fb6d3a49ec7c5d407267d835bdfc83a6fd0cc2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/JAXBUtils.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 5bdbf74c4171badbefe5bc07e9ae557b100b0abb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java 095a2976db5c1d456b7ab3b4ca95b6cac9172172 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0b7d4002bb9390b364e1b4aeb78ae9f0eb523d25 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 97a73a8059d816eb2f35b313f74c7a04aa60e49c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 68449f667782c15802ed211b51a91f208471f058 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 76031ecbadec307a12fe172f7b227b9f292e642f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 1daeea53955d121abfe94eaae2979bb1cbc8eca5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java fa3ba8f982b35eb3c79afd76284b698f09558a4e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4cae6f8074641574859b8d2782ac3afa11d6e441 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 25acb01a94b4103806eccac539d16bc1b12761dd 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java bc008ae6181490909605488a618029b8b6086f3c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java d97e7b8d499393a1cb5122126bd97637c1bd2b58 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 2ca11819166c3b6de10d0ff63eed4eb4c501ff5b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java b5b0b30426bb9d5761108e4d09ace970e8b1b9d5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 94d4b40ee33fc8c81904d5979bc6cc8cfe599e24 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 2bf0554cd016cb581a1dcfa6220980a03d8777ff 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 523a8768cc917bab95cf8f2bd9ff57a1a6f6e24c 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/derived/der1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/derived/der2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/derived/der3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/derived/derivedcube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/citydim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/countrydim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/cycledim1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/cycledim2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/daydim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/hourdim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/sports.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/statedim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/testdim2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/testdim3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/testdim4.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/unreachabledim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/user_interests.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/userdim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimensions/zipdim.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/citytable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/citytable2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/citytable3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/citytable4.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/countrytable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/countrytable_partitioned.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/cycledim1tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/cycledim2tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/daydimtbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/hourdimtbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/sports_tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/statetable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/statetable_partitioned.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/testdim2tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/testdim2tbl2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/testdim2tbl3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/testdim3tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/testdim4tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/unreachabledimtable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/user_interests_tbl.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/usertable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/dimtables/ziptable.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/cheapfact.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/summary1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/summary2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/summary3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/summary4.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact1_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact1_raw_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2_raw.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2_raw_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact3_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact3_raw_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact4_raw_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact5_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact5_raw_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact6_base.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact_continuous.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact_deprecated.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfactmonthly.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact5.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact6.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c0.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c2.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c3.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c4.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c5.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/storages/c99.xml PRE-CREATION 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java 24660e193a59fe7589de3147e412a08a0a22814e 
  lens-server/src/main/java/org/apache/lens/server/metastore/JAXBUtils.java 7d54c7b2c5471851a0d4049ba1a84a8d396e0ca2 


Diff: https://reviews.apache.org/r/57947/diff/1/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 11, 2017, 4:31 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
> > Lines 841 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685298#file1685298line862>
> >
> >     Can we move this to a resovler, which happens after StorageTableResolver? 
> >     
> >     It should remove itself from candidates if it is not eligible.
> >     
> >     Also we will add SEGMENT_PRUNED message with which carries the reasons why all of its candidates got pruned in detail error.

<p>Moved and added SEGMENTATION_PRUNED and SEGMENTATION_PRUNED_WITH_ERROR as discussed</p>


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171551
-----------------------------------------------------------


On April 24, 2017, 12:15 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 24, 2017, 12:15 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/13/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171551
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
Lines 841 (patched)
<https://reviews.apache.org/r/57947/#comment244498>

    Can we move this to a resovler, which happens after StorageTableResolver? 
    
    It should remove itself from candidates if it is not eligible.
    
    Also we will add SEGMENT_PRUNED message with which carries the reasons why all of its candidates got pruned in detail error.


- Amareshwari Sriramadasu


On April 5, 2017, 1:55 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 1:55 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 20, 2017, 4:15 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
> > Line 271 (original), 271 (patched)
> > <https://reviews.apache.org/r/57947/diff/11-12/?file=1691625#file1691625line271>
> >
> >     This looks a wrong assignment of storageTable to storageName.

Fixed. Now it's `String storageName = sc.getStorageName();`


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review172464
-----------------------------------------------------------


On April 24, 2017, 12:15 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 24, 2017, 12:15 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/13/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review172464
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
Line 271 (original), 271 (patched)
<https://reviews.apache.org/r/57947/#comment245588>

    This looks a wrong assignment of storageTable to storageName.


- Amareshwari Sriramadasu


On April 19, 2017, 1:36 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 19, 2017, 1:36 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/12/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 26, 2017, 12:32 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java
> > Lines 96 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699619#file1699619line96>
> >
> >     Getter called without any consumption?

not needed. removed


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173027
-----------------------------------------------------------


On April 27, 2017, 5:28 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 5:28 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173027
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java
Lines 912 (patched)
<https://reviews.apache.org/r/57947/#comment246112>

    commented code?



lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java
Lines 96 (patched)
<https://reviews.apache.org/r/57947/#comment246113>

    Getter called without any consumption?


- Amareshwari Sriramadasu


On April 25, 2017, 2:18 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 25, 2017, 2:18 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/17/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 26, 2017, 1:53 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
> > Line 264 (original), 265 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699624#file1699624line265>
> >
> >     New variable to be defined for holding storageTableName ?

Good catch! Removed the variable altogether. Using `sc.getStorageName()` and `sc.getStorageTable()` wherever required in this method.


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173030
-----------------------------------------------------------


On April 27, 2017, 5:28 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 5:28 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173030
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java
Line 264 (original), 265 (patched)
<https://reviews.apache.org/r/57947/#comment246116>

    New variable to be defined for holding storageTableName ?


- Amareshwari Sriramadasu


On April 25, 2017, 2:18 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 25, 2017, 2:18 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/17/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 26, 2017, 12:20 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
> > Line 38 (original)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699586#file1699586line38>
> >
> >     comment was describing what was stored in map, would be helpful.

Yeah, added back


> On April 26, 2017, 12:20 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
> > Lines 78 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699586#file1699586line79>
> >
> >     getColumns have to be overridden here, to return from validcolumns if validacolumns property is set.

getColumns is a pre-existing function. Changing that might break some tests. Modifying this function to 

```

  public boolean hasColumn(String column) {
    List<String> validColumns = getValidColumns();
    if (validColumns != null) {
      return validColumns.contains(column);
    } else {
      return getColumns().stream().map(FieldSchema::getName).anyMatch(Predicate.isEqual(column));
    }
  }

```

This function was moved from CandidateUtil to here.


> On April 26, 2017, 12:20 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
> > Lines 37 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699595#file1699595line37>
> >
> >     Why is clear requried?

removing all candidates and adding back their exploded versions. A candidate can return `this` in case explode is no-op.


> On April 26, 2017, 12:20 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
> > Lines 39 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699595#file1699595line39>
> >
> >     Can we add comments on what is happening here?

added javadoc.


> On April 26, 2017, 12:20 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
> > Line 865 (original), 850 (patched)
> > <https://reviews.apache.org/r/57947/diff/17/?file=1699600#file1699600line882>
> >
> >     Is the above logic for writing error still requried, which this log here?

Created `toJsonString()` inside BriefAndDetaildError and used that here


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173023
-----------------------------------------------------------


On April 27, 2017, 5:28 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 5:28 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173023
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
Line 38 (original)
<https://reviews.apache.org/r/57947/#comment246100>

    comment was describing what was stored in map, would be helpful.



lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java
Lines 78 (patched)
<https://reviews.apache.org/r/57947/#comment246099>

    getColumns have to be overridden here, to return from validcolumns if validacolumns property is set.



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
Lines 37 (patched)
<https://reviews.apache.org/r/57947/#comment246103>

    Why is clear requried?



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
Lines 39 (patched)
<https://reviews.apache.org/r/57947/#comment246106>

    Can we add comments on what is happening here?



lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
Line 865 (original), 850 (patched)
<https://reviews.apache.org/r/57947/#comment246110>

    Is the above logic for writing error still requried, which this log here?



lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java
Line 136 (original), 143 (patched)
<https://reviews.apache.org/r/57947/#comment246111>

    Can we add comments around new resovlers added?


- Amareshwari Sriramadasu


On April 25, 2017, 2:18 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 25, 2017, 2:18 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/17/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 27, 2017, 1:02 p.m., Amareshwari Sriramadasu wrote:
> > Needs clarity on how CandidateExploder is propagating to SegmentationCandidates

Removed `getQueryWriter` in `SegmentationCandidate#explode`


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173168
-----------------------------------------------------------


On April 27, 2017, 5:28 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 5:28 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173168
-----------------------------------------------------------



Needs clarity on how CandidateExploder is propagating to SegmentationCandidates

- Amareshwari Sriramadasu


On April 25, 2017, 2:18 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 25, 2017, 2:18 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/17/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated May 2, 2017, 4:44 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 957b9ff3ee169819b4cfdfddf2511f38ac3bc207 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/25/

Changes: https://reviews.apache.org/r/57947/diff/24-25/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated May 2, 2017, 3:06 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 957b9ff3ee169819b4cfdfddf2511f38ac3bc207 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/24/

Changes: https://reviews.apache.org/r/57947/diff/23-24/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated May 2, 2017, 1:52 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 957b9ff3ee169819b4cfdfddf2511f38ac3bc207 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/23/

Changes: https://reviews.apache.org/r/57947/diff/22-23/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated May 2, 2017, 1:31 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 957b9ff3ee169819b4cfdfddf2511f38ac3bc207 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/22/

Changes: https://reviews.apache.org/r/57947/diff/21-22/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 28, 2017, 5:53 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 957b9ff3ee169819b4cfdfddf2511f38ac3bc207 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/21/

Changes: https://reviews.apache.org/r/57947/diff/20-21/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 28, 2017, 3 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/20/

Changes: https://reviews.apache.org/r/57947/diff/19-20/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 28, 2017, 1:10 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/19/

Changes: https://reviews.apache.org/r/57947/diff/18-19/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 28, 2017, 11:05 a.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java
> > Lines 66 (patched)
> > <https://reviews.apache.org/r/57947/diff/18/?file=1701276#file1701276line66>
> >
> >     Make sure fact valid columns are used for this wherever required.

Seems that's already happening as getColumns in StorageCandidate is:

```
  @Override
  public Collection<String> getColumns() {
    if (factColumns == null) {
      factColumns = fact.getValidColumns();
      if (factColumns == null) {
        factColumns = fact.getAllFieldNames();
      }
    }
    return factColumns;
  }
  
```


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173294
-----------------------------------------------------------


On April 28, 2017, 3 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 28, 2017, 3 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 68ccc1342dd90d2a4701acc6a52b3c991f4b8b9f 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java d3f9142f2345f934f449979259f6e6f1bd859f07 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 29af4195b422e867da8764160f8d1d63c6485ea3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 5adbc233430e061e6228b3f5e5e24e5262de036b 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 95e3c9573d7bc3a29614974e2d523de795b12eb4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 267d85b2fc27815988172bb716f83abde0351649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/20/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173294
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java
Lines 66 (patched)
<https://reviews.apache.org/r/57947/#comment246326>

    Make sure fact valid columns are used for this wherever required.


- Amareshwari Sriramadasu


On April 27, 2017, 11:58 a.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 11:58 a.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review173297
-----------------------------------------------------------


Ship it!




Overall changes look good. Would need merge with master

- Amareshwari Sriramadasu


On April 27, 2017, 11:58 a.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 27, 2017, 11:58 a.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/18/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 27, 2017, 5:28 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2c1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/b1seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/b2seg1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 


Diff: https://reviews.apache.org/r/57947/diff/18/

Changes: https://reviews.apache.org/r/57947/diff/17-18/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 25, 2017, 7:48 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 


Diff: https://reviews.apache.org/r/57947/diff/17/

Changes: https://reviews.apache.org/r/57947/diff/16-17/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 25, 2017, 7:29 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cli/src/main/java/org/apache/lens/cli/commands/LensSchemaCommands.java befe4e6617ff4149136bd4bc2d2a8196414cba41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeFactTable.java e00122db06a4afcb8f227419669ee6e544888f2e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryAST.java b94f13165b340f2e059ea92a570fb64f1fb929cf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/TimerangeResolver.java 760ce82fd612158a3c4db510cf7ac8dc219dea6d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 


Diff: https://reviews.apache.org/r/57947/diff/16/

Changes: https://reviews.apache.org/r/57947/diff/15-16/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 25, 2017, 1:31 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/test/java/org/apache/lens/server/query/QueryAPIErrorResponseTest.java 064da0129efadbef4e632113e759601cae70dcb7 


Diff: https://reviews.apache.org/r/57947/diff/15/

Changes: https://reviews.apache.org/r/57947/diff/14-15/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 25, 2017, 1:12 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestExpressionResolver.java 1db3712718937dd721df5e5f1ab6c92e3449d25f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/14/

Changes: https://reviews.apache.org/r/57947/diff/13-14/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 24, 2017, 12:15 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/13/

Changes: https://reviews.apache.org/r/57947/diff/12-13/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 19, 2017, 7:06 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/12/

Changes: https://reviews.apache.org/r/57947/diff/11-12/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 18, 2017, 2:47 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
> > Lines 38 (patched)
> > <https://reviews.apache.org/r/57947/diff/11/?file=1691597#file1691597line38>
> >
> >     How is prune cause getting populated?

Updated the method with the same


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review172173
-----------------------------------------------------------


On April 24, 2017, 12:15 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 24, 2017, 12:15 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/13/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review172173
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java
Line 36 (original), 37 (patched)
<https://reviews.apache.org/r/57947/#comment245287>

    Lets avoid this. Whats the purpose of keeping CubeQueryContext in exception class?



lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java
Lines 59 (patched)
<https://reviews.apache.org/r/57947/#comment245292>

    Can we add javadoc for all default methods added?



lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java
Lines 233 (patched)
<https://reviews.apache.org/r/57947/#comment245291>

    Needs better exception message. also these errors will result in 500 errors, need to be handled well.



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java
Lines 38 (patched)
<https://reviews.apache.org/r/57947/#comment245293>

    How is prune cause getting populated?


- Amareshwari Sriramadasu


On April 13, 2017, 9:55 a.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 13, 2017, 9:55 a.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/11/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 13, 2017, 3:25 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/11/

Changes: https://reviews.apache.org/r/57947/diff/10-11/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 12, 2017, 2:04 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/10/

Changes: https://reviews.apache.org/r/57947/diff/9-10/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/resources/schema/segmentations/seg1.xml
> > Lines 26-30 (original), 26-32 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685346#file1685346line26>
> >
> >     Can we finish the TODOs ?

No segment properties in use as of now.


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171541
-----------------------------------------------------------


On April 24, 2017, 12:15 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 24, 2017, 12:15 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationInnerRewriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/cubes/derived/union_join_ctx_der1.xml 6237d87417ff89d770892d59ef57a82554164a94 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-cube/src/test/resources/schema/segmentations/seg2.xml PRE-CREATION 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/13/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
> > Line 88 (original), 88 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685330#file1685330line88>
> >
> >     Revisit this error change
> 
> Rajat Khandelwal wrote:
>     As explained in another reply, CandidateTableResolver no longer throws exception when it doesn't find any candidate.

Reverted. Changes in expected Error codes also reverted.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
> > Lines 1620-1628 (original), 1614-1622 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685331#file1685331line1620>
> >
> >     We might have to revisit these error changes.
> 
> Rajat Khandelwal wrote:
>     Same issue as above comment

Reverted as mentioned in above comment.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
> > Line 679 (original), 671 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685334#file1685334line679>
> >
> >     Why is this changed to NO_CANDIDATE_FACT_AVAILABLE?
> 
> Rajat Khandelwal wrote:
>     Reason is changes done in CandidateTableResolver.

reverted this


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171541
-----------------------------------------------------------


On April 19, 2017, 7:06 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 19, 2017, 7:06 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java 3a174990cc290fba2688ffc61433a35583646614 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/12/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java
> > Line 700 (original), 701 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685324#file1685324line712>
> >
> >     Not sure if removing factDimMap can cause wrong queries

While writing union queries, we don't perform any joins outside the union. The joins are to be performed for Storage Candidates. So since `StorageCandidateHQLContext` already has `factDimMap`, we don't need anything outside.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
> > Lines 164 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685325#file1685325line175>
> >
> >     qdims can be different from dimsToQuery list for a fact.

That is somehow getting taken care by the changes. Can you explain one such scenario and then I might be able to better reason about how/why it's working. I'll still somewhat explain the changes. 

So we were keeping two data structures for handling dimensions: one `Set<Dimension>` and one `Map<Dimension, CandidateDim>`. I wanted to reduce the duplications if any. It turned out the first one can be removed and keys of the map can be used everywhere, since whenever we used to update the set, we used to put entries in the map as well. So the invariant "the set is always equal to the keyset" holds.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
> > Line 88 (original), 88 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685330#file1685330line88>
> >
> >     Revisit this error change

As explained in another reply, CandidateTableResolver no longer throws exception when it doesn't find any candidate.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
> > Lines 1620-1628 (original), 1614-1622 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685331#file1685331line1620>
> >
> >     We might have to revisit these error changes.

Same issue as above comment


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java
> > Lines 113 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685332#file1685332line113>
> >
> >     Finish this test?

Yeah, dependent on sushil's changes to convert `sum(0.0) -> 0.0`. Didn't want to write asserts and have to modify them later. Although I've done a manual inspection of the generated query and it looked fine.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java
> > Lines 198-211 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685332#file1685332line198>
> >
> >     Add asserts for these tests.

Same as above comment.


> On April 11, 2017, 3:51 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
> > Line 679 (original), 671 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685334#file1685334line679>
> >
> >     Why is this changed to NO_CANDIDATE_FACT_AVAILABLE?

Reason is changes done in CandidateTableResolver.


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171541
-----------------------------------------------------------


On April 5, 2017, 7:25 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 7:25 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171541
-----------------------------------------------------------




lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java
Line 700 (original), 701 (patched)
<https://reviews.apache.org/r/57947/#comment244497>

    Not sure if removing factDimMap can cause wrong queries



lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java
Lines 164 (patched)
<https://reviews.apache.org/r/57947/#comment244496>

    qdims can be different from dimsToQuery list for a fact.



lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java
Line 478 (original), 530 (patched)
<https://reviews.apache.org/r/57947/#comment244495>

    remove commented code?



lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java
Line 88 (original), 88 (patched)
<https://reviews.apache.org/r/57947/#comment244494>

    Revisit this error change



lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java
Lines 1620-1628 (original), 1614-1622 (patched)
<https://reviews.apache.org/r/57947/#comment244493>

    We might have to revisit these error changes.



lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java
Lines 113 (patched)
<https://reviews.apache.org/r/57947/#comment244492>

    Finish this test?



lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java
Lines 198-211 (patched)
<https://reviews.apache.org/r/57947/#comment244491>

    Add asserts for these tests.



lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java
Line 679 (original), 671 (patched)
<https://reviews.apache.org/r/57947/#comment244490>

    Why is this changed to NO_CANDIDATE_FACT_AVAILABLE?



lens-cube/src/test/resources/schema/segmentations/seg1.xml
Lines 26-30 (original), 26-32 (patched)
<https://reviews.apache.org/r/57947/#comment244484>

    Can we finish the TODOs ?


- Amareshwari Sriramadasu


On April 5, 2017, 1:55 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 1:55 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.

> On April 10, 2017, 11:37 a.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
> > Lines 317-320 (original), 316-319 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685294#file1685294line317>
> >
> >     no more required?
> 
> Rajat Khandelwal wrote:
>     At this point, segmentation candidates are not even populated. So size of candidates being zero no longer implies there is no candidate available.

Why are we not doing above column existence check for segmentationCandidates? I feel we should do all above column exist checks for segmentations as well. If not here, where are the checks done?


- Amareshwari


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171430
-----------------------------------------------------------


On April 5, 2017, 1:55 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 1:55 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-api/src/main/resources/cube-0.1.xsd
> > Line 1229 (original), 1229 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685283#file1685283line1229>
> >
> >     Why are we doing change with xs:sequence vs xs:all ?

xs:sequence enforces property order in xmls abiding to this schema. xs:all allows unordered children inside parent tag. 

Basically xs:sequence might force the order of `b` and `c` below.


    <a>
      <b/>
      <c/>
    </a>
    
    
While xs:all will also allow the following xml as valid xml:

    <a>
      <c/>
      <b/>
    </a>


I think we have a lot of xs:sequence usages which we can convert to xs:all.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
> > Line 83 (original), 83-85 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685289#file1685289line83>
> >
> >     Need to finish this TODO

So at this point there will only be storage candidates and no complex candidates of any kind. The typecasting is still required. I can either

1. Remove the if/else part and just rely on casting, or
2. Add a LensException in else part. 

How do you suggest I should proceed here? The ClassCastException/LensException will never actually occur so it's basically like a hard assert. Going with 1 for now.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java
> > Line 133 (original), 133 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685292#file1685292line133>
> >
> >     Is this check required? Should we remove and the else exception ?

Will remove. Going with option 1 as described in previous comment.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java
> > Lines 294-297 (original), 276-279 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685292#file1685292line294>
> >
> >     no more required?

The issue is that earlier code was only storing answerable measure phrase indices. Now I'm updating answerable phrase indices. The reason behind that is to handle the case of `0.0`, which is not a measure, doesn't have aggregate and is still answerable.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
> > Lines 317-320 (original), 316-319 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685294#file1685294line317>
> >
> >     no more required?

At this point, segmentation candidates are not even populated. So size of candidates being zero no longer implies there is no candidate available.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java
> > Line 117 (original)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685295#file1685295line118>
> >
> >     no more requried?

As a general rule, I've tried to move most of static methods inside classes. 

`static f(A a, args)` can almost always be moved inside A as `f(args)`. I think `a.f(args)` is more readable and OOP friendly than `f(a, args)`. In cases when this seemed to improve readablity for me, I've done the movement. You might find a bunch of functions that are moved now. Accordingly, this function is now moved to Candidate

```

default Set<QueriedPhraseContext> coveredMeasures(Set<QueriedPhraseContext> msrs) throws LensException {
    Set<QueriedPhraseContext> covered = Sets.newHashSet();
    for (QueriedPhraseContext msr : msrs) {
      if (isPhraseAnswerable(msr)) {
        covered.add(msr);
      }
    }
    return covered;
  }
```


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171430
-----------------------------------------------------------


On April 5, 2017, 7:25 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 7:25 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.

> On April 10, 2017, 11:37 a.m., Amareshwari Sriramadasu wrote:
> > lens-api/src/main/resources/cube-0.1.xsd
> > Line 1229 (original), 1229 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685283#file1685283line1229>
> >
> >     Why are we doing change with xs:sequence vs xs:all ?
> 
> Rajat Khandelwal wrote:
>     xs:sequence enforces property order in xmls abiding to this schema. xs:all allows unordered children inside parent tag. 
>     
>     Basically xs:sequence might force the order of `b` and `c` below.
>     
>     
>         <a>
>           <b/>
>           <c/>
>         </a>
>         
>         
>     While xs:all will also allow the following xml as valid xml:
>     
>         <a>
>           <c/>
>           <b/>
>         </a>
>     
>     
>     I think we have a lot of xs:sequence usages which we can convert to xs:all.

Lets do this change in a separate jira. I see issues reported like http://stackoverflow.com/questions/16101488/difference-between-xsdall-and-xsdsequence-in-schema-definition which say error does not get propagated for xs:all.


- Amareshwari


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171430
-----------------------------------------------------------


On April 5, 2017, 1:55 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 1:55 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.

> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-api/src/main/resources/cube-0.1.xsd
> > Line 1229 (original), 1229 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685283#file1685283line1229>
> >
> >     Why are we doing change with xs:sequence vs xs:all ?
> 
> Rajat Khandelwal wrote:
>     xs:sequence enforces property order in xmls abiding to this schema. xs:all allows unordered children inside parent tag. 
>     
>     Basically xs:sequence might force the order of `b` and `c` below.
>     
>     
>         <a>
>           <b/>
>           <c/>
>         </a>
>         
>         
>     While xs:all will also allow the following xml as valid xml:
>     
>         <a>
>           <c/>
>           <b/>
>         </a>
>     
>     
>     I think we have a lot of xs:sequence usages which we can convert to xs:all.
> 
> Amareshwari Sriramadasu wrote:
>     Lets do this change in a separate jira. I see issues reported like http://stackoverflow.com/questions/16101488/difference-between-xsdall-and-xsdsequence-in-schema-definition which say error does not get propagated for xs:all.

Sure, removed.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java
> > Lines 294-297 (original), 276-279 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685292#file1685292line294>
> >
> >     no more required?
> 
> Rajat Khandelwal wrote:
>     The issue is that earlier code was only storing answerable measure phrase indices. Now I'm updating answerable phrase indices. The reason behind that is to handle the case of `0.0`, which is not a measure, doesn't have aggregate and is still answerable.

Moving this code to a default method in Candidate interface


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
> > Lines 317-320 (original), 316-319 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685294#file1685294line317>
> >
> >     no more required?
> 
> Rajat Khandelwal wrote:
>     At this point, segmentation candidates are not even populated. So size of candidates being zero no longer implies there is no candidate available.
> 
> Amareshwari Sriramadasu wrote:
>     Why are we not doing above column existence check for segmentationCandidates? I feel we should do all above column exist checks for segmentations as well. If not here, where are the checks done?

CandidateTableResolver is now populating segmentation candidates and doing column existence checks.


> On April 10, 2017, 5:07 p.m., Amareshwari Sriramadasu wrote:
> > lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
> > Lines 841 (patched)
> > <https://reviews.apache.org/r/57947/diff/9/?file=1685298#file1685298line862>
> >
> >     Isnt this too late to explode segment candidate?

rewrite internal now happening in a resolver that runs just after partition resolver


- Rajat


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171430
-----------------------------------------------------------


On April 13, 2017, 3:25 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 13, 2017, 3:25 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/error/NoCandidateFactAvailableException.java 21dda1685e8211357b0e35884ab3a96800451e9e 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java 99ad2331dc68d893703523ea4f0511333cb7b837 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 599027fbc32bace298d58b0797f2585d627115e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 82868949e9fbf38046548a6a32c7406f81b2dcfa 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java bbf8ab9d37e60b3211ff6cd99336409b5ff71c79 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java b22d9729252a9bb389e881032f63a950510c4081 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateExploder.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTablePruneCause.java 1c0d35684f13baeaa9c28fe2cf824dbab82ec5cb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java b9ff0eff271c62020800b9309a223f4f0db8d296 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java c63c4c0f2204591521f44584239fc9e275a60649 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 6bee3864e26a83c695e9389f8cbf6d93ca3fa37c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java 30fa873c255df408563f3c20062a6ccfca0f3811 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 926a4d0e0eaead318be64e37c2d3950d7b883fcb 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java 1b30c0b25d3ac861fa289f699421d4e420195b50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 52085ea35a0ba0df61742167457ba08ae410411f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 02e3dc7b6b93a108b1a239e4a7d01460df2666b4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java a9bd164b8f6d9e8b27396d491dace56eef3248c3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 0996db52322582a141af45137a030b108dbaa0a3 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java d95cf273e2ce300ec21201c52953f1c96d214be0 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 10c3bbe5a62723fab16c4e8f5381306ae31058e4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 7f07dbc84916b9163ae23bb49585f1631336af20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 3ee817fc2fd1043e7315ba76ce18c05ae1ff50c8 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 033264c81e94d1871eddea1045171042b3514e77 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 93dbfc3f3f067a843dda3243520f06e0e8c7e4b7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bab1080f02348190bb2a78e622f639db470a0cd6 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java d97c0e65260aee2fcd7053b1fc4a9779845fefa7 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestHQLParser.java 3165d3ad7019d2973c901e6179cb76504d061139 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeResolver.java d3938c1302c8600a7e4397dd5e9b8c38be2ee231 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestUnionQueries.java bed1e7aea275cf6101e172c8132b313fcbdd27b7 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml 22703ab59360804eb31cf7c97104dfc2223bfd32 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 2edf419b9a261c13323a42de8026da1dc46d5281 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml 41d2045004f9f9066f37e93916f1b67ce0074d2e 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml fcef02d62fa2e065016f5129e51893ca6d1446f1 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/11/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Amareshwari Sriramadasu <am...@apache.org>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/#review171430
-----------------------------------------------------------




lens-api/src/main/resources/cube-0.1.xsd
Line 1229 (original), 1229 (patched)
<https://reviews.apache.org/r/57947/#comment244360>

    Why are we doing change with xs:sequence vs xs:all ?



lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java
Line 83 (original), 83-85 (patched)
<https://reviews.apache.org/r/57947/#comment244361>

    Need to finish this TODO



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java
Line 133 (original), 133 (patched)
<https://reviews.apache.org/r/57947/#comment244362>

    Is this check required? Should we remove and the else exception ?



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java
Lines 294-297 (original), 276-279 (patched)
<https://reviews.apache.org/r/57947/#comment244363>

    no more required?



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java
Lines 317-320 (original), 316-319 (patched)
<https://reviews.apache.org/r/57947/#comment244364>

    no more required?



lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java
Line 117 (original)
<https://reviews.apache.org/r/57947/#comment244365>

    no more requried?



lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java
Lines 841 (patched)
<https://reviews.apache.org/r/57947/#comment244366>

    Isnt this too late to explode segment candidate?


- Amareshwari Sriramadasu


On April 5, 2017, 1:55 p.m., Rajat Khandelwal wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/57947/
> -----------------------------------------------------------
> 
> (Updated April 5, 2017, 1:55 p.m.)
> 
> 
> Review request for lens.
> 
> 
> Bugs: LENS-974
>     https://issues.apache.org/jira/browse/LENS-974
> 
> 
> Repository: lens
> 
> 
> Description
> -------
> 
> With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 
> 
> CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 
> 
> eg: 
> base_cube
>   |_fact1
>   |_fact2
>   |_cube_segment1
>      |_cube1
>         |_fact_11
>         |_fact_12
>         ... 
>       ...
>   |_cube_segment2
>      |_cube2
>         |_fact_21
>         |_fact_22
>         ... 
>       ...
> 
> 
> Diffs
> -----
> 
>   lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
>   lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
>   lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
>   lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
>   lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
>   lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
>   lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
>   lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
>   lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
>   lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
>   lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
>   lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
>   lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
>   lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
>   lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 
> 
> 
> Diff: https://reviews.apache.org/r/57947/diff/9/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Rajat Khandelwal
> 
>


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 5, 2017, 7:25 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageUtil.java f5cd540e46a68e5fb2fc4dd59f1ee6a9ec380693 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/9/

Changes: https://reviews.apache.org/r/57947/diff/8-9/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 5, 2017, 5:45 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLContextInterface.java 78d448ab1d145925ebfe27bb86333c8a971339ae 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/8/

Changes: https://reviews.apache.org/r/57947/diff/7-8/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 5, 2017, 5:39 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/7/

Changes: https://reviews.apache.org/r/57947/diff/6-7/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated April 5, 2017, 12:34 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DefaultQueryAST.java 29da0a2cf64f28cd1dbd2d52cc6609aaefc07a50 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DenormalizationResolver.java e5cf916648da1bd9a8095bd004b8fd3b2cfe2e47 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimHQLContext.java 95d65728457d24ac58fcaedc0d4c7a9b2e71fd71 
  lens-cube/src/main/java/org/apache/lens/cube/parse/DimOnlyHQLContext.java 6f6572ea3ba5ae5c6cb7ad2bc0eb9ce058f0ccc2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java aaa183b6de2e98d83f34769b7cad947450fa4930 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MultiCandidateQueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriter.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueryWriterContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SimpleHQLContext.java 77ebe82fa62d85af03d55d6a1772b08171274fd1 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidateHQLContext.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/BridgeTableJoinContext.java ab5c4f9bda147385c65ee9ce1bf9349383df2021 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 62d73861e01a7110dc5130f613c6e090d9fb2d06 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/6/

Changes: https://reviews.apache.org/r/57947/diff/5-6/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated March 29, 2017, 7:03 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 97a9ef009ba9298c8961c98e933d0847bcfbd46d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 860db28623fdd97324a3436fcac8751ed1fd70d3 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/5/

Changes: https://reviews.apache.org/r/57947/diff/4-5/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated March 29, 2017, 6:27 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 97a9ef009ba9298c8961c98e933d0847bcfbd46d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 860db28623fdd97324a3436fcac8751ed1fd70d3 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/4/

Changes: https://reviews.apache.org/r/57947/diff/3-4/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated March 29, 2017, 5:46 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 242d3ba803b5266f351bdf15da90469a3a7c5cdc 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java f241cb3111426f820beffe7c63209162bfb50f39 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0aafda619c20e893ae99abdc76b6797c9da6705f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 6d61f1fc152eb89efa71ac7a1a26f81f9eadafbf 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 5db1344ed5de6b1f36a1f877d8c5a2906c7eb99c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryConfUtil.java 300d798f9dd5760853d86d106ec2b9fc1e91afb5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 193bf440cbb52844711fba63622aead2721feab2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 97a9ef009ba9298c8961c98e933d0847bcfbd46d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java 6334062701c35733e2a0f15a69c8e9fee77eccca 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/LeastPartitionResolver.java 153df245cd2b79ee29991f98df36f57e4e029d2f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4f4e3ab4d811db4971f69b0cf2cc2a62f620ec29 
  lens-cube/src/main/java/org/apache/lens/cube/parse/PruneCauses.java 50ccab5896fa1a2e291e4aaaff1d20af93b1a64e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java 628e9aaf9f6aeda8697f4018e729156edd261333 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 1a2d9a99fc896086f8d664023233c472c2a27eb6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java 62ebf71b09d5845a04f03c4f770112c0d25659c5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java f2325f18de1469b8186bdbeb1e7294988e9492b2 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java aab671e2385cd92b50b344bd1a60871cf8c24173 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 860db28623fdd97324a3436fcac8751ed1fd70d3 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java ba8a5e41490024b641ad55fc4bff2f2ce65f36ca 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 7874a6613656deb58b7e2c8db36759a8f459eb5f 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryMetrics.java 3883beed7bf123d01ffc31d9d27b0b1d0a79331a 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 
  lens-server/src/main/java/org/apache/lens/server/query/QueryExecutionServiceImpl.java c6fbedab81779583fee4c5b7ea4c0ba69fd93b8c 


Diff: https://reviews.apache.org/r/57947/diff/3/

Changes: https://reviews.apache.org/r/57947/diff/2-3/


Testing
-------


Thanks,

Rajat Khandelwal


Re: Review Request 57947: LENS-974: Add cube-segmentation for base cube

Posted by Rajat Khandelwal <ra...@gmail.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/57947/
-----------------------------------------------------------

(Updated March 27, 2017, 3:04 p.m.)


Review request for lens.


Bugs: LENS-974
    https://issues.apache.org/jira/browse/LENS-974


Repository: lens


Description
-------

With cube segmentation a cube can have multiple cubes and all these child cubes together will make the cube complete. 

CubeSegmentation and  CubeFactTable will sit together, which means it can belong to only one base cube. A base cube can have one or more cube segmentations. Fields of segmentation will be intersection of all columns of its cubes. Segmentation will have weight to compare with its buddies (facts or other segmentations). Also it can have start and end time defined or it can derive from its underline facts. 

eg: 
base_cube
  |_fact1
  |_fact2
  |_cube_segment1
     |_cube1
        |_fact_11
        |_fact_12
        ... 
      ...
  |_cube_segment2
     |_cube2
        |_fact_21
        |_fact_22
        ... 
      ...


Diffs (updated)
-----

  lens-api/src/main/java/org/apache/lens/api/ds/Tuple2.java PRE-CREATION 
  lens-api/src/main/resources/cube-0.1.xsd 1d8a6241a85066f111b8490e8e03516e4848cf41 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/Cube.java b376aaf463f991c540b7c711a90271551848a6e2 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/DateUtil.java d10d72e1dcbd68ded9c09e04144b728b9755ef5d 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/MetastoreUtil.java 57d4502d0429c355bdf4127406512b6a967585e1 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimePartitionRange.java 2e85111583eb8d80427df91607411581d4ccd38c 
  lens-cube/src/main/java/org/apache/lens/cube/metadata/TimeRange.java 5bdbf74c4171badbefe5bc07e9ae557b100b0abb 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AggregateResolver.java 30b1a904ddf2dcc4a3cd66732059fb146acc0c20 
  lens-cube/src/main/java/org/apache/lens/cube/parse/AliasReplacer.java da342426924a54d4b53a3fcf83dda61193ed86d6 
  lens-cube/src/main/java/org/apache/lens/cube/parse/Candidate.java 095a2976db5c1d456b7ab3b4ca95b6cac9172172 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateCoveringSetsResolver.java 0b7d4002bb9390b364e1b4aeb78ae9f0eb523d25 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateSegmentResolver.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateTableResolver.java 97a73a8059d816eb2f35b313f74c7a04aa60e49c 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CandidateUtil.java 68449f667782c15802ed211b51a91f208471f058 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ColumnResolver.java 21cdd26a965b6ae2f63a3c96ade55e7773a7d13d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryContext.java 76031ecbadec307a12fe172f7b227b9f292e642f 
  lens-cube/src/main/java/org/apache/lens/cube/parse/CubeQueryRewriter.java 57130697c7ad3c3038b70994cdd61a7c70574f63 
  lens-cube/src/main/java/org/apache/lens/cube/parse/ExpressionResolver.java 1daeea53955d121abfe94eaae2979bb1cbc8eca5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/GroupbyResolver.java c9dc7b2351875c85318971b003516ae0888d59af 
  lens-cube/src/main/java/org/apache/lens/cube/parse/HQLParser.java 8a70535203f038b07f387b20adf7343e593d899d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinCandidate.java fa3ba8f982b35eb3c79afd76284b698f09558a4e 
  lens-cube/src/main/java/org/apache/lens/cube/parse/JoinResolver.java 03709646b2f9fe7d26d524ef744ee07316f04684 
  lens-cube/src/main/java/org/apache/lens/cube/parse/MaxCoveringFactResolver.java 4cae6f8074641574859b8d2782ac3afa11d6e441 
  lens-cube/src/main/java/org/apache/lens/cube/parse/QueriedPhraseContext.java 310a655cd2102ce7c8da19ae3301cf9b241caff4 
  lens-cube/src/main/java/org/apache/lens/cube/parse/SegmentationCandidate.java PRE-CREATION 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageCandidate.java e6e9f8f0f42471567611fe0e4629d5f9f87a471a 
  lens-cube/src/main/java/org/apache/lens/cube/parse/StorageTableResolver.java 22e2e09f2ee2c3fd7b970025a8155dda1ff4847d 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionCandidate.java d97e7b8d499393a1cb5122126bd97637c1bd2b58 
  lens-cube/src/main/java/org/apache/lens/cube/parse/UnionQueryWriter.java 2ca11819166c3b6de10d0ff63eed4eb4c501ff5b 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/AutoJoinContext.java b5b0b30426bb9d5761108e4d09ace970e8b1b9d5 
  lens-cube/src/main/java/org/apache/lens/cube/parse/join/JoinClause.java 432525270966a203ab0f75e47f8d1aa48704d835 
  lens-cube/src/test/java/org/apache/lens/cube/metadata/TestDateUtil.java 8b3b4baacd2b7b08db37c321f5aff06e28ca8df1 
  lens-cube/src/test/java/org/apache/lens/cube/parse/CubeTestSetup.java 2d031f435fbd663f634ec1eeff58e1473e0173c5 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestBaseCubeQueries.java 2bf0554cd016cb581a1dcfa6220980a03d8777ff 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java bf1c151a096994a3b549e4e40b7e9c62e25cfc50 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeSegmentationRewriter.java PRE-CREATION 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestDenormalizationResolver.java 523a8768cc917bab95cf8f2bd9ff57a1a6f6e24c 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestJoinResolver.java f5ddf7bba365a6313860191a0609ab0e729d4d67 
  lens-cube/src/test/java/org/apache/lens/cube/parse/TestQueryRewrite.java 17a8b0f75a777f55a5c7ba930c3e441351b7c434 
  lens-cube/src/test/resources/schema/cubes/base/b1cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/b2cube.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/cubes/base/basecube.xml b1fea1c3399bac1d3bbc3f18337de7c7e615b76c 
  lens-cube/src/test/resources/schema/cubes/base/testcube.xml 0338f550291b081a1251a986fe1f92c29f9a42e0 
  lens-cube/src/test/resources/schema/facts/b1b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b1fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/b2fact1.xml PRE-CREATION 
  lens-cube/src/test/resources/schema/facts/testfact2.xml d6006c65a52e3c3f5e44cd942b147572a31c9fc6 
  lens-cube/src/test/resources/schema/facts/union_join_ctx_fact1.xml d07393d6717ea5350855786c26ee7e750bfe48ed 
  lens-cube/src/test/resources/schema/segmentations/seg1.xml 7ed48a1ca97176e59b5481ad57c864e3675d89bd 
  lens-server-api/src/main/java/org/apache/lens/server/api/query/comparators/ChainedComparator.java 2cff8d80fcfff16446f30bc53be2a84d9b95dc83 
  lens-server-api/src/test/java/org/apache/lens/server/api/query/comparators/ChainedComparatorTest.java cc587519dda64036ba56c15690d12c9b57c0afc6 


Diff: https://reviews.apache.org/r/57947/diff/2/

Changes: https://reviews.apache.org/r/57947/diff/1-2/


Testing
-------


Thanks,

Rajat Khandelwal