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]