diff --git a/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateTriggerMixin.kt b/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateTriggerMixin.kt index b3dd0901..7c1b1714 100644 --- a/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateTriggerMixin.kt +++ b/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateTriggerMixin.kt @@ -19,14 +19,14 @@ internal abstract class CreateTriggerMixin( if (child is MutatorMixin || child is SqliteExpr) { val table = tablesAvailable(this).first { it.tableName.name == tableName?.name }.query if (hasElement(SqliteTypes.INSERT)) { - return listOf(QueryResult(SingleRow(tableName!!, "new"), table.columns)) + return listOf(QueryResult(SingleRow(tableName!!, "new"), table.columns, synthesizedColumns = table.synthesizedColumns)) } if (hasElement(SqliteTypes.UPDATE)) { - return listOf(QueryResult(SingleRow(tableName!!, "new"), table.columns), - QueryResult(SingleRow(tableName!!, "old"), table.columns)) + return listOf(QueryResult(SingleRow(tableName!!, "new"), table.columns, synthesizedColumns = table.synthesizedColumns), + QueryResult(SingleRow(tableName!!, "old"), table.columns, synthesizedColumns = table.synthesizedColumns)) } if (hasElement(SqliteTypes.DELETE)) { - return listOf(QueryResult(SingleRow(tableName!!, "old"), table.columns)) + return listOf(QueryResult(SingleRow(tableName!!, "old"), table.columns, synthesizedColumns = table.synthesizedColumns)) } } if (child is SqliteColumnName) { diff --git a/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateVirtualTableMixin.kt b/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateVirtualTableMixin.kt index 0d8f0202..e78416cd 100644 --- a/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateVirtualTableMixin.kt +++ b/core/src/main/kotlin/com/alecstrong/sqlite/psi/core/psi/mixins/CreateVirtualTableMixin.kt @@ -16,7 +16,7 @@ internal abstract class CreateVirtualTableMixin( SqliteCreateVirtualTableStmt, TableElement { override fun tableExposed(): LazyQuery { - val synthesizedColumns = if (moduleName?.text?.startsWith("fts") == true) { + val synthesizedColumns = if (moduleName?.text?.startsWith(prefix ="fts", ignoreCase = true) == true) { listOf( SynthesizedColumn( table = this, diff --git a/core/src/test/fixtures/create-trigger-docid/Test.s b/core/src/test/fixtures/create-trigger-docid/Test.s new file mode 100644 index 00000000..fc669610 --- /dev/null +++ b/core/src/test/fixtures/create-trigger-docid/Test.s @@ -0,0 +1,18 @@ +CREATE TABLE task + ( + id TEXT NOT NULL, + title TEXT NOT NULL, + description TEXT, + completed INTEGER NOT NULL, + PRIMARY KEY(id) + ); + +CREATE VIRTUAL TABLE task_fts USING FTS4(title TEXT NOT NULL, description TEXT, content=task); + +CREATE TRIGGER content_sync_task_fts_BEFORE_UPDATE +BEFORE UPDATE ON task +BEGIN + DELETE + FROM task_fts + WHERE docid=old.rowid; +END; \ No newline at end of file