mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Get a big backupV2 import fully working.
This commit is contained in:
@@ -55,16 +55,12 @@ class NameCollisionTables(
|
||||
|
||||
private val PROFILE_CHANGE_TIMEOUT = 1.days
|
||||
|
||||
fun createTables(db: SQLiteDatabase) {
|
||||
db.execSQL(NameCollisionTable.CREATE_TABLE)
|
||||
db.execSQL(NameCollisionMembershipTable.CREATE_TABLE)
|
||||
}
|
||||
val CREATE_TABLE = arrayOf(
|
||||
NameCollisionTable.CREATE_TABLE,
|
||||
NameCollisionMembershipTable.CREATE_TABLE
|
||||
)
|
||||
|
||||
fun createIndexes(db: SQLiteDatabase) {
|
||||
NameCollisionMembershipTable.CREATE_INDEXES.forEach {
|
||||
db.execSQL(it)
|
||||
}
|
||||
}
|
||||
val CREATE_INDEXES = NameCollisionMembershipTable.CREATE_INDEXES
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,6 +14,7 @@ import androidx.sqlite.db.SupportSQLiteQuery;
|
||||
import net.zetetic.database.sqlcipher.SQLiteStatement;
|
||||
import net.zetetic.database.sqlcipher.SQLiteTransactionListener;
|
||||
|
||||
import org.signal.core.util.logging.Log;
|
||||
import org.signal.core.util.tracing.Tracer;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -180,10 +180,11 @@ class SearchTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa
|
||||
writableDatabase.withinTransaction { db ->
|
||||
db.execSQL(
|
||||
"""
|
||||
INSERT INTO $FTS_TABLE_NAME ($ID, $BODY)
|
||||
INSERT INTO $FTS_TABLE_NAME ($ID, $BODY, $THREAD_ID)
|
||||
SELECT
|
||||
${MessageTable.ID},
|
||||
${MessageTable.BODY}
|
||||
${MessageTable.BODY},
|
||||
${MessageTable.THREAD_ID}
|
||||
FROM
|
||||
${MessageTable.TABLE_NAME}
|
||||
WHERE
|
||||
|
||||
@@ -113,7 +113,7 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
|
||||
db.execSQL(CallLinkTable.CREATE_TABLE)
|
||||
db.execSQL(CallTable.CREATE_TABLE)
|
||||
db.execSQL(KyberPreKeyTable.CREATE_TABLE)
|
||||
NameCollisionTables.createTables(db)
|
||||
executeStatements(db, NameCollisionTables.CREATE_TABLE)
|
||||
db.execSQL(InAppPaymentTable.CREATE_TABLE)
|
||||
db.execSQL(InAppPaymentSubscriberTable.CREATE_TABLE)
|
||||
executeStatements(db, SearchTable.CREATE_TABLE)
|
||||
@@ -144,12 +144,11 @@ open class SignalDatabase(private val context: Application, databaseSecret: Data
|
||||
executeStatements(db, ReactionTable.CREATE_INDEXES)
|
||||
executeStatements(db, KyberPreKeyTable.CREATE_INDEXES)
|
||||
executeStatements(db, ChatFolderTables.CREATE_INDEXES)
|
||||
executeStatements(db, NameCollisionTables.CREATE_INDEXES)
|
||||
|
||||
executeStatements(db, SearchTable.CREATE_TRIGGERS)
|
||||
executeStatements(db, MessageSendLogTables.CREATE_TRIGGERS)
|
||||
|
||||
NameCollisionTables.createIndexes(db)
|
||||
|
||||
DistributionListTables.insertInitialDistributionListAtCreationTime(db)
|
||||
ChatFolderTables.insertInitialChatFoldersAtCreationTime(db)
|
||||
|
||||
|
||||
@@ -165,16 +165,16 @@ class SqlCipherErrorHandler(private val databaseName: String) : DatabaseErrorHan
|
||||
}
|
||||
|
||||
private fun attemptToClearFullTextSearchIndex(db: SQLiteDatabase) {
|
||||
try {
|
||||
try {
|
||||
db.reopenReadWrite()
|
||||
} catch (e: Exception) {
|
||||
Log.w(TAG, "Failed to re-open as read-write!", e)
|
||||
}
|
||||
SignalDatabase.messageSearch.fullyResetTables(db, useTransaction = false)
|
||||
} catch (e: Throwable) {
|
||||
Log.w(TAG, "Failed to clear full text search index.", e)
|
||||
}
|
||||
// try {
|
||||
// try {
|
||||
// db.reopenReadWrite()
|
||||
// } catch (e: Exception) {
|
||||
// Log.w(TAG, "Failed to re-open as read-write!", e)
|
||||
// }
|
||||
// SignalDatabase.messageSearch.fullyResetTables(db, useTransaction = false)
|
||||
// } catch (e: Throwable) {
|
||||
// Log.w(TAG, "Failed to clear full text search index.", e)
|
||||
// }
|
||||
}
|
||||
|
||||
private sealed class DiagnosticResults(val logs: String) {
|
||||
|
||||
Reference in New Issue
Block a user