diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/AddressableModule.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/AddressableModule.kt index f689c1577..ce9d0ce51 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/AddressableModule.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/AddressableModule.kt @@ -23,7 +23,7 @@ package com.vitorpamplona.quartz.nip01Core.store.sqlite import android.database.sqlite.SQLiteDatabase class AddressableModule : IModule { - fun create(db: SQLiteDatabase) { + override fun create(db: SQLiteDatabase) { db.execSQL( """ CREATE UNIQUE INDEX addressable_idx @@ -69,4 +69,8 @@ class AddressableModule : IModule { """.trimIndent(), ) } + + override fun drop(db: SQLiteDatabase) {} + + override fun deleteAll(db: SQLiteDatabase) {} } diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventIndexesModule.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventIndexesModule.kt index c19b28282..3e2ac6083 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventIndexesModule.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip01Core/store/sqlite/EventIndexesModule.kt @@ -258,7 +258,7 @@ class EventIndexesModule( } private fun parseResults(cursor: Cursor): List { - val events = ArrayList() + val events = ArrayList(cursor.count) while (cursor.moveToNext()) { events.add( @@ -396,29 +396,26 @@ class EventIndexesModule( val projection = buildString { - val anchorColumn: String val joins = mutableListOf() if (hasHeaders) { append("SELECT event_headers.row_id as row_id FROM event_headers") - anchorColumn = "event_headers.row_id" if (hasSearch) { - joins.add("INNER JOIN ${fts.tableName} ON ${fts.tableName}.${fts.eventHeaderRowIdName} = $anchorColumn") + joins.add("INNER JOIN ${fts.tableName} ON ${fts.tableName}.${fts.eventHeaderRowIdName} = event_headers.row_id") } filter.tags?.forEach { (tagName, _) -> if (tagName != "d") { - joins.add("INNER JOIN event_tags as tag$tagName ON tag$tagName.event_header_row_id = $anchorColumn") + joins.add("INNER JOIN event_tags as tag$tagName ON tag$tagName.event_header_row_id = event_headers.row_id") } } } else if (hasSearch) { append("SELECT ${fts.tableName}.${fts.eventHeaderRowIdName} as row_id FROM ${fts.tableName}") - anchorColumn = "${fts.tableName}.${fts.eventHeaderRowIdName}" filter.tags?.forEach { (tagName, _) -> if (tagName != "d") { - joins.add("INNER JOIN event_tags as tag$tagName ON tag$tagName.event_header_row_id = $anchorColumn") + joins.add("INNER JOIN event_tags as tag$tagName ON tag$tagName.event_header_row_id = ${fts.tableName}.${fts.eventHeaderRowIdName}") } } } else {