mirror of
https://github.com/Foundry376/Mailspring.git
synced 2024-09-22 08:16:09 +08:00
395bd80da2
Summary: This started when I noticed that drafts weren't dissapearing from the draft list after send. This was a pretty big bug because if you ever clicked on one again and tried to re-send it would throw a 400 error saying the draft id doesn't exist. This uncovered a few fundamental issues with the DB. First of all, the reason the draft list wasn't updating was because the DB trigger that happened when we got in a new message, was being ignored since the diff contained no drafts (it's now a message). The bigger issue was that if you had a draft with only a clientId, gave it a serverId, and tried to call "save", the REPLACE INTO method would not update the old object, but rather create a second duplicate. This is because the `id` field was being used as the PRIMARY KEY, and in this case, that `id` field changed! The fix was to change the PRIMARY KEY to be the `cilent_id` instead of the `id` and use that as the REPLACE INTO index. We still need the `id` field; however, because all of our reads depend on that field usually being the serverId Fixes T3507 Test Plan: See new and updated tests Reviewers: dillon, bengotow Reviewed By: bengotow Maniphest Tasks: T3507 Differential Revision: https://phab.nylas.com/D1992 |
||
---|---|---|
.. | ||
account-sidebar | ||
attachments | ||
calendar-bar | ||
category-picker | ||
composer | ||
composer-signature | ||
composer-spellcheck | ||
events | ||
file-list | ||
github | ||
inbox-contact-elements | ||
message-list | ||
message-templates | ||
mode-switch | ||
notification-mailto | ||
notification-update-available | ||
notifications | ||
onboarding | ||
preferences | ||
search-bar | ||
settings | ||
sidebar-fullcontact | ||
thread-list | ||
today | ||
tooltip | ||
ui-dark | ||
ui-light | ||
undo-redo | ||
unread-notifications | ||
worker-sync | ||
worker-ui |