[ 
https://issues.apache.org/jira/browse/PHOENIX-852?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14110883#comment-14110883
 ] 

James Taylor commented on PHOENIX-852:
--------------------------------------

One other question. In HashCacheClient, can you remind me what this does (maybe 
add a comment?):
{code}
-    private void serialize(ImmutableBytesWritable ptr, ResultIterator 
iterator, TupleProjector projector, long estimatedSize, List<Expression> 
onExpressions) throws SQLException {
+    private void serialize(ImmutableBytesWritable ptr, ResultIterator 
iterator, TupleProjector projector, long estimatedSize, List<Expression> 
onExpressions, Expression keyRangeRhsExpression, List<ImmutableBytesWritable> 
keyRangeRhsValues) throws SQLException {
         long maxSize = 
serverCache.getConnection().getQueryServices().getProps().getLong(QueryServices.MAX_SERVER_CACHE_SIZE_ATTRIB,
 QueryServicesOptions.DEFAULT_MAX_SERVER_CACHE_SIZE);
         estimatedSize = Math.min(estimatedSize, maxSize);
         if (estimatedSize > Integer.MAX_VALUE) {
@@ -105,6 +105,13 @@ public class HashCacheClient  {
                 if (baOut.size() > maxSize) {
                     throw new MaxServerCacheSizeExceededException("Size of 
hash cache (" + baOut.size() + " bytes) exceeds the maximum allowed size (" + 
maxSize + " bytes)");
                 }
+                if (keyRangeRhsExpression != null) {
+                    ImmutableBytesWritable value = new 
ImmutableBytesWritable();
+                    keyRangeRhsExpression.reset();
+                    if (keyRangeRhsExpression.evaluate(result, value)) {
+                        keyRangeRhsValues.add(value);
+                    }
+                }
                 nRows++;
             }
{code}

> Optimize child/parent foreign key joins
> ---------------------------------------
>
>                 Key: PHOENIX-852
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-852
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: James Taylor
>            Assignee: Maryann Xue
>         Attachments: 852-2.patch, 852.patch, PHOENIX-852.patch
>
>
> Often times a join will occur from a child to a parent. Our current algorithm 
> would do a full scan of one side or the other. We can do much better than 
> that if the HashCache contains the PK (or even part of the PK) from the table 
> being joined to. In these cases, we should drive the second scan through a 
> skip scan on the server side.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to