Ori.livneh has submitted this change and it was merged.

Change subject: Insertion of duplicate records does not trigger an error if 
replace=True
......................................................................


Insertion of duplicate records does not trigger an error if replace=True

Change-Id: I6c2c99d17c4446a21b3a37b9a03058b133faac3c
---
M server/eventlogging/jrm.py
1 file changed, 4 insertions(+), 3 deletions(-)

Approvals:
  Ori.livneh: Verified; Looks good to me, approved



diff --git a/server/eventlogging/jrm.py b/server/eventlogging/jrm.py
index 91a9025..134def3 100644
--- a/server/eventlogging/jrm.py
+++ b/server/eventlogging/jrm.py
@@ -175,11 +175,12 @@
     """Insert events into the database by issuing an INSERT for each one."""
     for event in events:
         insert = table.insert(values=event)
+        if replace:
+            insert = (insert
+                      .prefix_with('IGNORE', dialect='mysql')
+                      .prefix_with('OR REPLACE', dialect='sqlite'))
         try:
             insert.execute()
-        except sqlalchemy.exc.IntegrityError as e:
-            if not replace or 'unique' not in str(e).lower():
-                raise
         except sqlalchemy.exc.ProgrammingError:
             table.create()
             insert.execute()

-- 
To view, visit https://gerrit.wikimedia.org/r/190130
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6c2c99d17c4446a21b3a37b9a03058b133faac3c
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/EventLogging
Gerrit-Branch: master
Gerrit-Owner: Nuria <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to