Viraj Jasani created PHOENIX-7648:
-------------------------------------

             Summary: Introduce new Atomic Operation - ON DUPLICATE KEY 
UPDATE_ONLY
                 Key: PHOENIX-7648
                 URL: https://issues.apache.org/jira/browse/PHOENIX-7648
             Project: Phoenix
          Issue Type: New Feature
            Reporter: Viraj Jasani


Phoenix provides two types of Atomic Update operations: ON DUPLICATE KEY IGNORE 
and ON DUPLICATE KEY UPDATE.

The purpose of ON DUPLICATE KEY IGNORE is to perform the insertion of new row 
i.e. if the row does not exist, add the row, else ignore the update operation. 
The purpose of ON DUPLICATE KEY UPDATE is to provide atomic update based on the 
expressions provided on the various non-pk columns. For the conditional updates 
that include CASE expression, the atomic update goes through successfully only 
if the condition is satisfied on the row.

However, if the row does not already exist, ON DUPLICATE KEY UPDATE performs 
the insertion anyways regardless of the condition provided. There are valid use 
cases that consider the absence of the row as condition not being satisfied 
i.e. if the row does not exist, the condition provided with CASE statement is 
not satisfied anyways.

Therefore, the purpose of this Jira is to introduce new type of atomic update 
operation with statement ON DUPLICATE KEY UPDATE_ONLY, that performs the 
condition evaluation similar to ON DUPLICATE KEY UPDATE, however if the row 
does not exist, UPDATE_ONLY is not expected to perform any insertion.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to