Better solution for generating WHERE clause for message ranges
This commit is contained in:
parent
cefc2c1125
commit
1346ece242
2 changed files with 3 additions and 6 deletions
|
@ -77,10 +77,7 @@ class MessageRange():
|
||||||
|
|
||||||
return "?"
|
return "?"
|
||||||
|
|
||||||
def where(self, table=None):
|
def where(self, column='id'):
|
||||||
prefix = '' if table is None else f"{table}."
|
|
||||||
column = prefix + 'id'
|
|
||||||
|
|
||||||
if self.id is not None:
|
if self.id is not None:
|
||||||
return "%s = %d" % (column, self.id)
|
return "%s = %d" % (column, self.id)
|
||||||
|
|
||||||
|
|
|
@ -259,7 +259,7 @@ class Session():
|
||||||
if len(args) > 1:
|
if len(args) > 1:
|
||||||
msgrange = MessageRange.parse(args[1])
|
msgrange = MessageRange.parse(args[1])
|
||||||
|
|
||||||
sql += " and " + msgrange.where()
|
sql += " and " + msgrange.where('message_id')
|
||||||
|
|
||||||
summary = self._newsgroup_summary(newsgroup)
|
summary = self._newsgroup_summary(newsgroup)
|
||||||
cr = self.db.execute(sql, (newsgroup.id,))
|
cr = self.db.execute(sql, (newsgroup.id,))
|
||||||
|
@ -547,7 +547,7 @@ class Session():
|
||||||
and newsgroup_message.newsgroup_id = ?
|
and newsgroup_message.newsgroup_id = ?
|
||||||
"""
|
"""
|
||||||
|
|
||||||
sql += " and " + msgrange.where('message')
|
sql += " and " + msgrange.where('newsgroup_message.message_id')
|
||||||
|
|
||||||
cr = self.db.query_sql(Message, sql, (self.newsgroup.id,))
|
cr = self.db.query_sql(Message, sql, (self.newsgroup.id,))
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue