Merge "Resolving auto migration issue where SQLite keywords are failed to be escaped in column names." into androidx-main
diff --git a/room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.AutoMigrationDb/1.json b/room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.AutoMigrationDb/1.json
index 3ca5c0e..6a4c8e9 100644
--- a/room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.AutoMigrationDb/1.json
+++ b/room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.AutoMigrationDb/1.json
@@ -503,7 +503,7 @@
       },
       {
         "tableName": "Entity16",
-        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `name` TEXT, `addedInV1` INTEGER NOT NULL DEFAULT 1, PRIMARY KEY(`id`))",
+        "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `name` TEXT, `index` INTEGER NOT NULL DEFAULT 1, PRIMARY KEY(`id`))",
         "fields": [
           {
             "fieldPath": "id",
@@ -518,8 +518,8 @@
             "notNull": false
           },
           {
-            "fieldPath": "addedInV1",
-            "columnName": "addedInV1",
+            "fieldPath": "index",
+            "columnName": "index",
             "affinity": "INTEGER",
             "notNull": true,
             "defaultValue": "1"
diff --git a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationDb.java b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationDb.java
index f910674..deb192f 100644
--- a/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationDb.java
+++ b/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/AutoMigrationDb.java
@@ -460,7 +460,7 @@
     @RenameTable(fromTableName = "Entity19", toTableName = "Entity19_V2")
     @RenameTable(fromTableName = "Entity20", toTableName = "Entity20_V2")
     @RenameTable(fromTableName = "Entity13", toTableName = "Entity13_V2")
-    @RenameColumn(tableName = "Entity16", fromColumnName = "addedInV1",
+    @RenameColumn(tableName = "Entity16", fromColumnName = "index",
             toColumnName = "renamedInV2")
     @RenameColumn(tableName = "Entity17", fromColumnName = "addedInV1",
             toColumnName = "renamedInV2")
diff --git a/room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt b/room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt
index 290606e..a264fab 100644
--- a/room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt
+++ b/room/room-compiler/src/main/kotlin/androidx/room/writer/AutoMigrationWriter.kt
@@ -242,9 +242,10 @@
             migrateBuilder,
             buildString {
                 append(
-                    "INSERT INTO `${newTable.tableName}` (${newColumnSequence.joinToString(",")})" +
-                        " SELECT ${oldColumnSequence.joinToString(",")} FROM " +
-                        "`$selectFromTable`",
+                    "INSERT INTO `${newTable.tableName}` " +
+                        "(${newColumnSequence.joinToString(",") { "`$it`" }})" +
+                        " SELECT ${oldColumnSequence.joinToString(",") { "`$it`" }} " +
+                        "FROM `$selectFromTable`",
                 )
             }
         )
@@ -312,8 +313,8 @@
             buildString {
                 append(
                     "INSERT INTO `$tableNameWithNewPrefix` " +
-                        "(${newColumnSequence.joinToString(",")})" +
-                        " SELECT ${oldColumnSequence.joinToString(",")} FROM " +
+                        "(${newColumnSequence.joinToString(",") { "`$it`" }})" +
+                        " SELECT ${oldColumnSequence.joinToString(",") { "`$it`" }} FROM " +
                         "`$oldTableName`",
                 )
             }