[svn r1557] Correct some errors for multi-user support.
--- a/lib/my_db.py Fri Sep 26 18:51:48 2003 -0400
+++ b/lib/my_db.py Sat Sep 27 01:02:57 2003 -0400
@@ -115,7 +115,7 @@
WHERE userid = %d AND bookmark = %d;
DELETE FROM bookmarks
WHERE userid = %d AND id = %d;
- """ % (self.userid, id, userid, id))
+ """ % (self.userid, id, self.userid, id))
self.cnx.commit()
def add_keyword(self, name):
id = self.get_next_id('keywords')
@@ -133,12 +133,14 @@
return self.crs.fetchone()[0]
def get_keywords(self, bk_id):
self.crs.execute("""
- SELECT id, name FROM keywords, bookmarks_keywords
- WHERE bookmarks_keywords.userid = %d
- AND bookmarks_keywords.bookmark = %d
- AND keywords.id = bookmarks_keywords.keyword
- ORDER BY id;
- """ % (self.userid, bk_id))
+ SELECT k.id, k.name
+ FROM keywords k, bookmarks_keywords bk
+ WHERE bk.userid = %d
+ AND k.userid = %d
+ AND bk.bookmark = %d
+ AND k.id = bk.keyword
+ ORDER BY k.id;
+ """ % (self.userid, self.userid, bk_id))
return self.crs.fetchall()
def update_keyword(self, id, name):
self.crs.execute("""
@@ -162,8 +164,8 @@
UPDATE bookmarks_keywords
SET keyword = %d
WHERE keyword = %d
- userid = %d
- AND NOT ( bookmark IN
+ AND userid = %d
+ AND bookmark NOT IN
(SELECT bookmark FROM bookmarks_keywords
WHERE userid = %d AND keyword = %d ))
;
@@ -174,7 +176,7 @@
"""Return a list of doublets [id, keyword, count]."""
self.crs.execute("""SELECT k.id, k.name
FROM keywords k
- WHERE userid = %d
+ WHERE k.userid = %d
ORDER BY k.id;""" % (self.userid,))
res = self.crs.fetchall()
return res
@@ -195,10 +197,9 @@
Return a list of id bookmarks who has /has_kw/ set but not /except_kw/.
"""
basic_qry = """
- SELECT id FROM bookmarks, bookmarks_keywords
- WHERE bookmarks.id = bookmarks_keywords.bookmark
- AND bookmarks_keywords.keyword = %d
- AND bookmarks_keywords.userid = %d
+ SELECT bk.bookmark FROM bookmarks_keywords bk
+ WHERE bk.keyword = %d
+ AND bk.userid = %d
"""
qry = basic_qry % (has_kw[0], self.userid)
@@ -215,9 +216,9 @@
else:
userid = self.userid
self.crs.execute("""
- SELECT nextid FROM db_sequence WHERE
- db_sequence.seq_name = '%s'
- AND db_sequence.userid = %d
+ SELECT nextid FROM db_sequence
+ WHERE seq_name = '%s'
+ AND userid = %d
FOR UPDATE;
""" % (seq_name,userid))
id = self.crs.fetchone()[0]