add index & clean

pull/941/head
ryanzhao 1 year ago
parent 071d23c0df
commit 0bfc337bcc

@ -21,6 +21,16 @@ enum _011_DisappearingMessagesConfiguration: Migration {
t.add(.lastKnownClientVersion, .integer)
}
/// Add index on interaction table for wasRead and variant
///
/// This is due to new disappearing messages will need some info messages to be able to be unread,
/// but we only want to count the unread message number by incoming visible messages and call messages.
try db.create(
index: "interaction_on_wasRead_and_variant",
on: Interaction.databaseTableName,
columns: [Interaction.Columns.wasRead, Interaction.Columns.variant].map { $0.name }
)
func updateDisappearingMessageType(_ db: GRDB.Database, id: String, type: DisappearingMessagesConfiguration.DisappearingMessageType) throws {
_ = try DisappearingMessagesConfiguration
.filter(DisappearingMessagesConfiguration.Columns.threadId == id)

@ -551,7 +551,7 @@ public extension SessionThreadViewModel {
\(interaction[.authorId]),
\(interaction[.linkPreviewUrl]),
SUM(\(interaction[.wasRead]) = false AND \(interaction[.variant]) IN (\(Interaction.Variant.standardIncoming), \(Interaction.Variant.infoCall))) AS \(ViewModel.threadUnreadCountKey),
SUM(\(interaction[.wasRead]) = false AND \(interaction[.variant]) IN \(Interaction.Variant.variantsToIncrementUnreadCount)) AS \(ViewModel.threadUnreadCountKey),
SUM(\(interaction[.wasRead]) = false AND \(interaction[.hasMention]) = true) AS \(ViewModel.threadUnreadMentionCountKey),
(SUM(\(interaction[.wasRead]) = false) > 0) AS \(ViewModel.threadHasUnreadMessagesOfAnyKindKey)
@ -805,7 +805,7 @@ public extension SessionThreadViewModel {
\(interaction[.threadId]),
MAX(\(interaction[.timestampMs])),
SUM(\(interaction[.wasRead]) = false AND \(interaction[.variant]) IN (\(Interaction.Variant.standardIncoming), \(Interaction.Variant.infoCall))) AS \(ViewModel.threadUnreadCountKey),
SUM(\(interaction[.wasRead]) = false AND \(interaction[.variant]) IN \(Interaction.Variant.variantsToIncrementUnreadCount)) AS \(ViewModel.threadUnreadCountKey),
(SUM(\(interaction[.wasRead]) = false) > 0) AS \(ViewModel.threadHasUnreadMessagesOfAnyKindKey)
FROM \(Interaction.self)

Loading…
Cancel
Save