umustafi commented on code in PR #3721:
URL: https://github.com/apache/gobblin/pull/3721#discussion_r1271157024


##########
gobblin-runtime/src/main/java/org/apache/gobblin/runtime/api/MysqlMultiActiveLeaseArbiter.java:
##########
@@ -122,7 +122,8 @@ protected interface CheckedFunction<T, R> {
   // Need to define three separate statements to handle cases where row does 
not exist or has null values to check
   protected static final String 
CONDITIONALLY_ACQUIRE_LEASE_IF_NEW_ROW_STATEMENT = "INSERT INTO %s (flow_group, 
"
       + "flow_name, flow_execution_id, flow_action, event_timestamp, 
lease_acquisition_timestamp) "
-      + "VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)";
+      + "SELECT ?, ?, ?, ?, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP WHERE NOT 
EXISTS (SELECT * FROM %s "
+      + WHERE_CLAUSE_TO_MATCH_KEY + ")";

Review Comment:
   `If you use the IGNORE modifier, ignorable errors that occur while executing 
the [INSERT](https://dev.mysql.com/doc/refman/8.0/en/insert.html) statement are 
ignored. For example, without IGNORE, a row that duplicates an existing UNIQUE 
index or PRIMARY KEY value in the table causes a duplicate-key error and the 
statement is aborted. With IGNORE, the row is discarded and no error occurs. 
Ignored errors generate warnings instead.` 
https://dev.mysql.com/doc/refman/8.0/en/insert.html suggests that an error will 
be thrown if PK already exists so need to use IGNORE or WHERE NOT EXISTS



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to