Better duplicate detection in local database
This incorporates much better duplicate detection in the local database, using both RFC-822 Message-ID as well as IMAP metadata (internaldate, RFC822 size) to determine if a message is already stored in the database. Very useful when a message is stored in multiple folders, or an already-downloaded message is returned to a folder it originated in (i.e. INBOX). Also some minor fixes to listing email by EmailIdentifier which save a roundtrip to the server for certain edge cases.
This commit is contained in:
parent
d8fe58bf46
commit
f5b7d29a8c
11 changed files with 214 additions and 239 deletions
|
|
@ -70,6 +70,8 @@ public class Geary.Sqlite.MessageTable : Geary.Sqlite.Table {
|
|||
return id;
|
||||
}
|
||||
|
||||
// TODO: This could be improved greatly, in particular making this a single SQL command or
|
||||
// parallelizing the commands.
|
||||
public async void merge_async(Transaction? transaction, MessageRow row,
|
||||
Cancellable? cancellable) throws Error {
|
||||
Transaction locked = yield obtain_lock_async(transaction, "MessageTable.merge_async",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue