diff -r 41c87e1332eb -r 69c1f93892dd lib/my_db.py --- 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]