Compare commits

...
Author SHA1 Message Date
Cursor Agentandpranavrajs 97fd4885fc Fix: Optimize IMAP query and add timeout handling
Co-authored-by: pranavrajs <pranavrajs@gmail.com>
2025-09-09 23:44:04 +00:00
Cursor Agentandpranavrajs 8498c92fdd Fix: Optimize IMAP and Support mailbox query timeouts
Co-authored-by: pranavrajs <pranavrajs@gmail.com>
2025-09-09 23:30:38 +00:00
2 changed files with 16 additions and 0 deletions
@@ -0,0 +1,15 @@
class AddIndexConversationsAdditionalAttributesInReplyTo < ActiveRecord::Migration[7.0]
disable_ddl_transaction!
def change
# Add GIN index for JSONB queries on conversations.additional_attributes->>'in_reply_to'
# This index will significantly improve the performance of the query:
# conversations.where("additional_attributes->>'in_reply_to' = ?", in_reply_to)
# which is used in ImapMailbox#find_conversation_by_in_reply_to
add_index :conversations,
"((additional_attributes->>'in_reply_to'))",
name: 'index_conversations_on_additional_attributes_in_reply_to',
algorithm: :concurrently,
where: "additional_attributes->>'in_reply_to' IS NOT NULL"
end
end
+1
View File
@@ -264,5 +264,6 @@ RSpec.describe Imap::ImapMailbox do
expect(conversation.additional_attributes['in_reply_to']).to eq(multiple_in_reply_to_mail.in_reply_to.first)
end
end
end
end