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

James Taylor commented on PHOENIX-3818:
---------------------------------------

Thanks for the patch, [~alexaraujo]. Please see my comment on the duplicate 
JIRA I filed, PHOENIX-3821. We want to make sure we maintain the existing 
optimization that runs an UPSERT SELECT on the server side when the source and 
target table are the same and the row is being updated in place (since we know 
that no cross region calls will be made). In addition to considering if the 
source and target table are the same, you need to detect if any PK columns are 
potentially changing. You can use the 
UngroupedAggregateRegionObserver.isPkPositionChanging() method for that (move 
to ExpressionUtil would make the most sense IMHO). You can look UpsertCompile 
before PHOENIX-3271 was committed to see this check if it would help.

I also think the default for your new config should be true instead of false. 
Users can always override it in their own configs if they're worried about it.

> Add client setting to disable server side UPSERT SELECT work
> ------------------------------------------------------------
>
>                 Key: PHOENIX-3818
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3818
>             Project: Phoenix
>          Issue Type: Improvement
>    Affects Versions: 4.10.0
>            Reporter: Alex Araujo
>            Assignee: Alex Araujo
>         Attachments: PHOENIX-3818.v1.patch
>
>
> PHOENIX-3271 introduced RS -> RS RPCs by default via UPSERT SELECT 
> statements. Add a client side setting that disables this behavior.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to