Improve message send performance.
This commit is contained in:
parent
9ba755da16
commit
c959f41c68
2 changed files with 8 additions and 5 deletions
|
@ -1691,7 +1691,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
|
|
||||||
val query = meaningfulQuery and isNotJoinedType
|
val query = meaningfulQuery and isNotJoinedType
|
||||||
val hasMeaningfulMessages = readableDatabase
|
val hasMeaningfulMessages = readableDatabase
|
||||||
.exists(TABLE_NAME)
|
.exists("$TABLE_NAME INDEXED BY $INDEX_THREAD_STORY_SCHEDULED_DATE_LATEST_REVISION_ID")
|
||||||
.where(query.where, query.whereArgs)
|
.where(query.where, query.whereArgs)
|
||||||
.run()
|
.run()
|
||||||
|
|
||||||
|
@ -1705,7 +1705,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
|
|
||||||
val query = buildMeaningfulMessagesQuery(threadId)
|
val query = buildMeaningfulMessagesQuery(threadId)
|
||||||
return readableDatabase
|
return readableDatabase
|
||||||
.exists(TABLE_NAME)
|
.exists("$TABLE_NAME INDEXED BY $INDEX_THREAD_STORY_SCHEDULED_DATE_LATEST_REVISION_ID")
|
||||||
.where(query.where, query.whereArgs)
|
.where(query.where, query.whereArgs)
|
||||||
.run()
|
.run()
|
||||||
}
|
}
|
||||||
|
@ -1722,7 +1722,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
|
|
||||||
return readableDatabase
|
return readableDatabase
|
||||||
.select(ID, HAS_DELIVERY_RECEIPT, HAS_READ_RECEIPT, TYPE)
|
.select(ID, HAS_DELIVERY_RECEIPT, HAS_READ_RECEIPT, TYPE)
|
||||||
.from(TABLE_NAME)
|
.from("$TABLE_NAME INDEXED BY $INDEX_THREAD_STORY_SCHEDULED_DATE_LATEST_REVISION_ID")
|
||||||
.where(query.where, query.whereArgs)
|
.where(query.where, query.whereArgs)
|
||||||
.orderBy("$DATE_RECEIVED DESC")
|
.orderBy("$DATE_RECEIVED DESC")
|
||||||
.limit(1)
|
.limit(1)
|
||||||
|
@ -1746,7 +1746,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
|
|
||||||
private fun buildMeaningfulMessagesQuery(threadId: Long): SqlUtil.Query {
|
private fun buildMeaningfulMessagesQuery(threadId: Long): SqlUtil.Query {
|
||||||
val query = """
|
val query = """
|
||||||
$THREAD_ID = ? AND
|
$THREAD_ID = $threadId AND
|
||||||
$STORY_TYPE = 0 AND
|
$STORY_TYPE = 0 AND
|
||||||
$LATEST_REVISION_ID IS NULL AND
|
$LATEST_REVISION_ID IS NULL AND
|
||||||
$PARENT_STORY_ID <= 0 AND
|
$PARENT_STORY_ID <= 0 AND
|
||||||
|
@ -1762,7 +1762,7 @@ open class MessageTable(context: Context?, databaseHelper: SignalDatabase) : Dat
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
return SqlUtil.buildQuery(query, threadId)
|
return SqlUtil.buildQuery(query)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setNetworkFailures(messageId: Long, failures: Set<NetworkFailure?>?) {
|
fun setNetworkFailures(messageId: Long, failures: Set<NetworkFailure?>?) {
|
||||||
|
|
|
@ -26,6 +26,9 @@ class SmsDatabaseTest {
|
||||||
fun setup() {
|
fun setup() {
|
||||||
val sqlCipher = TestDatabaseUtil.inMemoryDatabase {
|
val sqlCipher = TestDatabaseUtil.inMemoryDatabase {
|
||||||
execSQL(MessageTable.CREATE_TABLE)
|
execSQL(MessageTable.CREATE_TABLE)
|
||||||
|
MessageTable.CREATE_INDEXS.forEach {
|
||||||
|
execSQL(it)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
db = sqlCipher.writableDatabase
|
db = sqlCipher.writableDatabase
|
||||||
|
|
Loading…
Add table
Reference in a new issue