[ https://issues.apache.org/jira/browse/IGNITE-8550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16755572#comment-16755572 ]
Alexey Kuznetsov edited comment on IGNITE-8550 at 1/30/19 2:05 AM: ------------------------------------------------------------------- [~smoldachev] and [~slukyanov] I think that we need to fix this issue another way. Fix is simple and could be like: {code:java} if (updCnt == 0) U.warn(log, "Nothing was updated for entry [table=" + em.fullTableName() + ", entry=" + entry + "]"); {code} No need to modify dialects at all. As far as I remember this warning was added in order to notify user about situations when data was not updated. What do you think? was (Author: kuaw26): [~smoldachev] and [~slukyanov] I think that we need to fix this issue another way. Fix is simple and could be like: {code:java} if (updCnt == 0) U.warn(log, "Unexpected number of updated entries [table=" + em.fullTableName() + ", entry=" + entry + "expected > 0, actual = 0]"); {code} No need to modify dialects at all. As far as I remember this warning was added in order to notify user about situations when data was not updated. What do you think? > CacheAbstractJdbcStore expects merge to always return 1 but MySQL may also > return 2 or 0 > ---------------------------------------------------------------------------------------- > > Key: IGNITE-8550 > URL: https://issues.apache.org/jira/browse/IGNITE-8550 > Project: Ignite > Issue Type: Bug > Components: cache > Reporter: Stanislav Lukyanov > Assignee: Moldachev Sergey > Priority: Minor > Labels: newbie > Fix For: 2.8 > > Time Spent: 10m > Remaining Estimate: 0h > > CacheAbstractJdbcStore.write attempts to execute a merge update if it is > available, and expects the merge to always return 1 (as the number of updated > entries is always 1). > However, MySQL's `INSERT ... ON DUPLICATE KEY UPDATE` > (https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html) may return > 0 or 2, depending on what was updated: > {quote}With ON DUPLICATE KEY UPDATE, the affected-rows value per row is 1 if > the row is inserted as a new row, 2 if an existing row is updated, and 0 if > an existing row is set to its current values.{quote} > Because of that, CacheAbstractJdbcStore may report a false warning. > Need to consider either removing the warning or special-case the MySQL > dialect to allow to return values other than 1. -- This message was sent by Atlassian JIRA (v7.6.3#76005)