Merge branch '921-slow-old-detach-query' into 'mainline'
Fix query performance regression in old message detachment See merge request GNOME/geary!577
This commit is contained in:
commit
45c27dffa4
1 changed files with 11 additions and 8 deletions
|
|
@ -943,17 +943,20 @@ private class Geary.ImapDB.Folder : BaseObject, Geary.ReferenceSemantics {
|
|||
Gee.ArrayList<string> deleted_primary_keys = null;
|
||||
|
||||
yield db.exec_transaction_async(Db.TransactionType.RO, (cx) => {
|
||||
// MessageLocationTable.ordering isn't relied on due to IMAP folder
|
||||
// UIDs not guaranteed to be in order.
|
||||
// MessageLocationTable.ordering isn't relied on throughout due
|
||||
// to IMAP folder UIDs not guaranteed to be in order. Make sure to
|
||||
// performance test any changes to the select queries below.
|
||||
StringBuilder sql = new StringBuilder();
|
||||
sql.append("""
|
||||
SELECT COUNT(*)
|
||||
FROM MessageLocationTable ml
|
||||
INNER JOIN MessageTable m
|
||||
INDEXED BY MessageTableInternalDateTimeTIndex
|
||||
ON ml.message_id = m.id
|
||||
WHERE ml.folder_id = ?
|
||||
AND m.internaldate_time_t >= ?
|
||||
FROM MessageLocationTable
|
||||
WHERE folder_id = ?
|
||||
AND message_id IN (
|
||||
SELECT id
|
||||
FROM MessageTable
|
||||
INDEXED BY MessageTableInternalDateTimeTIndex
|
||||
WHERE internaldate_time_t >= ?
|
||||
)
|
||||
""");
|
||||
|
||||
Db.Statement stmt = cx.prepare(sql.str);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue