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

Vincent Poon commented on PHOENIX-4531:
---------------------------------------

[~jamestaylor] The hint was not using the data table because the optimizer 
chooses the smaller table (fewest non-pk columns), which is generally the 
index.  It also turns out that the logic was flipped for interpreting the hint.

I attached a v3 patch that has your patch plus:
 * -Changes to QueryOptimizer that resolves the above.  I only compare table 
size for queries that don't have a DATA_OVER_INDEX hint.  The rest of the logic 
stays the same such that a WHERE clause would cause the index to still be used.
 * Added a test in QueryOptimizerTest
 * Added my test in PartialIndexRebuilderIT to test that the index gets 
disabled properly when there's a write failure to the index when issuing 
deletes.

> Delete on a table with a global mutable index can issue client-side deletes 
> against the index
> ---------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-4531
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-4531
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.13.0
>         Environment:  
>            Reporter: Vincent Poon
>            Assignee: Vincent Poon
>            Priority: Major
>         Attachments: PHOENIX-4531.v1.master.patch, 
> PHOENIX-4531.v3.master.patch, PHOENIX-4531_v1.patch, PHOENIX-4531_v2.patch, 
> PartialIndexRebuilderIT.java
>
>
> For a table with a global mutable index, I found the following result in 
> client-side deletes against both the data table and index table.
> "DELETE FROM data_table" 
> "DELETE FROM data_table WHERE indexed_col='v'"
> We only need the delete to be issued against the data table, because
> 1) It's redundant since a delete against the index will be issued on the 
> server side when we process the delete of the data table row
> 2) Deletes issued from the client-side won't have the index failure policy



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to