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

Maryann Xue commented on PHOENIX-1489:
--------------------------------------

Ignore my previous comment (deleted). I assume it's still compatible. There are 
two things concerning this change:
1. For a join query projection: In the new client, the "forceProjection" flag 
is always serialized as true. And the old HashJoinRegionScanner would take this 
flag and always project the row at the very beginning of the join operation, 
which is the same behavior with the new HashJoinRegionScanner.
2. For a single query projection: In the new server code, we would have 
BaseScannerRegionObserver.getWrappedScanner to do the job instead of initiating 
a HashJoinRegionScanner even without any join operation. But in the old server 
code, the HashJoinRegionScanner would do the job, exactly the same way. Both 
the scan attribute name and the attribute content have not changed between two 
versions.

Anyway, I will verify it before check-in. However, there is one minor issue 
with backward compatibility, which would cause scenario in 
MappingTableDataTypeIT to fail (which expects a exception to be throw for a 
value of incorrect byte length). Now that we evaluate and project KeyValues on 
the server side, the tuple projection should be responsible for checking the 
data length. This is actually a bug I fixed for KeyValueSchema in this patch. 
It should have checked ptr length before returning the value, and the maxOffset 
should not be the total length of ptr but instead should be the total length 
minus bitSet length. I would like to check in this small bug fix to 4.3 if 
possible.



> Access column values positionally from client
> ---------------------------------------------
>
>                 Key: PHOENIX-1489
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1489
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: James Taylor
>            Assignee: Maryann Xue
>         Attachments: 1489-2.patch, 1489-v1.patch, 1489-v3.patch
>
>
> Instead of passing back separate KeyValues for data returned from the server, 
> we should access via position using our TupleProjector everywhere. This is 
> already the case for joins and aggregate queries, but not for scan queries. 
> We can modify ScanRegionObserver to use our KeyValueSchema to accomplish this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to