diff --git a/lib/xenu_nntp/session.py b/lib/xenu_nntp/session.py index 3c5748a..a8033ca 100644 --- a/lib/xenu_nntp/session.py +++ b/lib/xenu_nntp/session.py @@ -541,22 +541,25 @@ class Session(Connection): sql = """ select - message.* + message_id from - newsgroup_message, - message + newsgroup_message where - message.id = newsgroup_message.message_id - and newsgroup_message.newsgroup_id = %s - """ + newsgroup_id = %s + and """ + msgrange.where('message_id') - sql += " and " + msgrange.where('message.id') - - cr = self.db.query_sql(Message, sql, (self.newsgroup.id,)) + cr = self.db.execute(sql, (self.newsgroup.id,)) first = True - for message in cr.each(): + while True: + row = cr.fetchone() + + if row is None: + break + + message = self.db.get(Message, {'id': row[0]}) + if first: first = False self.respond(success)