[
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)