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


Ship it!




Ship It!

- anilkumar gingade


On Feb. 1, 2016, 8:59 p.m., Jason Huynh wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/43062/
> -----------------------------------------------------------
> 
> (Updated Feb. 1, 2016, 8:59 p.m.)
> 
> 
> Review request for geode, anilkumar gingade, Barry Oglesby, Dan Smith, and 
> xiaojian zhou.
> 
> 
> Repository: geode
> 
> 
> Description
> -------
> 
> When executing a join query with additional filters on a single region, we 
> now detect this scenario and instead of creating a CompositeGroupJunction, we 
> create a regular GroupJunction.  When we being cutdown and expansion, we then 
> create new compiled comparisons so that we can do an index lookup.  
> 
> For example "select * from /region1 a, /region2 b where a.name = "joe" and 
> a.id = b.id"
> 
> We will now execute the a.name first assuming an index is present on a.name
> 
> During cutdown and expand, we determine that the comparison a.id = b.id can 
> create a new compiled comparison (derived join) because the alias a from a.id 
> matches our original filter a.name.  We can evaluate a.id at this point, say 
> id evaluated to 8.  So we create a compiled comparison of b.id = 8.  We can 
> now do a lookup using the index on b.id.  We retrieve these results and place 
> them into a map.  This map will be used to continue to derive additional 
> joins if they exist.  Such as b.id = c.id, etc...
> 
> We can continue with the iteration but instead of iterating the entire b 
> region, we can now iterate over the results of the derived join.
> 
> This also includes a fix to not unlock an index lock when reevaluating an 
> inner query.
> 
> 
> Diffs
> -----
> 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/CompiledComparison.java
>  75eaaad 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/CompiledJunction.java
>  6bc68de 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/CompiledSelect.java
>  205acaa 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/DerivedInfo.java
>  PRE-CREATION 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/GroupJunction.java
>  37c13f2 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/QueryUtils.java
>  91e20f0 
>   
> gemfire-core/src/main/java/com/gemstone/gemfire/cache/query/internal/index/IndexManager.java
>  534f757 
>   
> gemfire-core/src/test/java/com/gemstone/gemfire/cache/query/internal/index/EquijoinDUnitTest.java
>  PRE-CREATION 
>   
> gemfire-core/src/test/java/com/gemstone/gemfire/cache/query/internal/index/PartitionedRegionEquijoinDUnitTest.java
>  PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/43062/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Jason Huynh
> 
>

Reply via email to