diff --git a/src/flux/models/message.coffee b/src/flux/models/message.coffee index b8d22e755..1ece23203 100644 --- a/src/flux/models/message.coffee +++ b/src/flux/models/message.coffee @@ -160,6 +160,7 @@ class Message extends Model @additionalSQLiteConfig: setup: -> ['CREATE INDEX IF NOT EXISTS MessageListIndex ON Message(account_id, thread_id, date ASC)', + 'CREATE INDEX IF NOT EXISTS MessageListDraftIndex ON Message(account_id, draft)', 'CREATE UNIQUE INDEX IF NOT EXISTS MessageDraftIndex ON Message(client_id)', 'CREATE UNIQUE INDEX IF NOT EXISTS MessageBodyIndex ON MessageBody(id)'] diff --git a/src/flux/stores/database-store.coffee b/src/flux/stores/database-store.coffee index cf866b5cd..1ab1737f4 100644 --- a/src/flux/stores/database-store.coffee +++ b/src/flux/stores/database-store.coffee @@ -140,6 +140,12 @@ class DatabaseStore extends NylasStore @_db = new sqlite3.Database @_databasePath, mode, (err) => return @_handleSetupError(err) if err ready() + @_db.on 'profile', (query, msec) => + if msec > 100 + @_prettyConsoleLog("#{msec}msec: #{query}") + else + console.debug(DEBUG_TO_LOG, "#{msec}: #{query}") + _checkDatabaseVersion: ({allowNotSet} = {}, ready) => @_db.get 'PRAGMA user_version', (err, {user_version}) => @@ -232,14 +238,9 @@ class DatabaseStore extends NylasStore @_db.serialize() if @_inflightTransactions is 0 @_inflightTransactions += 1 - start = Date.now() @_db[fn] query, values, (err, results) => if err console.error("DatabaseStore: Query #{query}, #{JSON.stringify(values)} failed #{err.toString()}") - else - duration = Date.now() - start - metadata = {duration: duration, resultLength: results?.length} - console.debug(DEBUG_TO_LOG, "DatabaseStore: END (#{duration}) #{query}", metadata) if query is COMMIT @_inflightTransactions -= 1 diff --git a/src/flux/stores/message-store.coffee b/src/flux/stores/message-store.coffee index 224cc5878..0d008fb26 100644 --- a/src/flux/stores/message-store.coffee +++ b/src/flux/stores/message-store.coffee @@ -175,7 +175,7 @@ class MessageStore extends NylasStore if @_thread.unread markAsReadDelay = atom.config.get('core.reading.markAsReadDelay') setTimeout => - return unless loadedThreadId is @_thread?.id + return unless loadedThreadId is @_thread?.id and @_thread.unread t = new ChangeUnreadTask(thread: @_thread, unread: false) t.canBeUndone = => false Actions.queueTask(t)