[aur-dev] [PATCH] notify: Avoid EXCEPT in SQL statement

Lukas Fleischer lfleischer at archlinux.org
Mon Dec 12 18:45:16 UTC 2016


Do not use the EXCEPT clause which is unsupported in MySQL. Instead, use
a subquery which is standard-compliant and makes the query easier to
read at the same time.

Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
 aurweb/scripts/notify.py | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/aurweb/scripts/notify.py b/aurweb/scripts/notify.py
index 8fdfeb9..69164fb 100755
--- a/aurweb/scripts/notify.py
+++ b/aurweb/scripts/notify.py
@@ -139,12 +139,10 @@ def get_request_recipients(conn, reqid):
 
 
 def get_tu_vote_reminder_recipients(conn, vote_id):
-    cur = conn.execute('SELECT Users.Email FROM Users ' +
-                       'WHERE AccountTypeID = 2 ' +
-                       'EXCEPT SELECT Users.Email FROM Users ' +
-                       'INNER JOIN TU_Votes ' +
-                       'ON TU_Votes.UserID = Users.ID ' +
-                       'WHERE TU_Votes.VoteID = ?', [vote_id])
+    cur = conn.execute('SELECT Email FROM Users ' +
+                       'WHERE AccountTypeID = 2 AND ID NOT IN ' +
+                       '(SELECT UserID FROM TU_Votes ' +
+                       'WHERE TU_Votes.VoteID = ?)', [vote_id])
     return [row[0] for row in cur.fetchall()]
 
 
-- 
2.10.2


More information about the aur-dev mailing list