From a13002b9f01aef2fe274387f59dc8d76e1b6b651 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development <dev@xantronix.com> Date: Sat, 4 Jan 2025 22:00:15 -0500 Subject: [PATCH] Use two concurrent queries to avoid client waiting --- lib/xenu_nntp/session.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) 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)