Obsolete
Status Update
Comments
bl...@google.com <bl...@google.com> #2
We gave up upgrading to Room because we need to use FTS3/FTS4 virtual tables. Any plants to support it?
cl...@gmail.com <cl...@gmail.com> #3
Florina Muntenescu (Android developer advocate at Google) told me that FTS support will definitely NOT be in Room 1.0 final. It is postponed to an indeterminate later version.
cl...@gmail.com <cl...@gmail.com> #4
It is possible to work with virtual tables and fts4 while using Room v1. You just need to create and access it by yourself using sql queries. Not perfect but it works for me (just did it a few days ago).
Can't wait for this feature to be in Room
Can't wait for this feature to be in Room
ma...@phxend.com <ma...@phxend.com> #5
If your FTS tables are separate from the rest of your model it's a viable solution. Mine are fully integrated with my model (almost all queries have JOINs with virtual tables) so it's a no-go.
jo...@ascensoreslaplata.com.ar <jo...@ascensoreslaplata.com.ar> #6
any news?
ma...@phxend.com <ma...@phxend.com> #7
I'm really looking forward to use FTS natively with Room. Can you give some kind of roadmap? E.g. is it considered for Room 1.2 or Room 2.0?
cr...@gmail.com <cr...@gmail.com> #8
Using FTS should not block you from using room, you just cannot use compile time checked queries (you can still use them in RawQuery though).
jo...@ascensoreslaplata.com.ar <jo...@ascensoreslaplata.com.ar> #9
Thanks for the fast answer, Yigit. I'm more then happy to not have to work with RawQuery's anymore, and I don't want to jump back to it for using FTS.
Based on your answer I would guess that it's delayed / postponed any longer, cause it's already working with this kind of workaround?
Based on your answer I would guess that it's delayed / postponed any longer, cause it's already working with this kind of workaround?
cl...@gmail.com <cl...@gmail.com> #10
> Using FTS should not block you from using room, you just cannot use compile time checked queries (you can still use them in RawQuery though).
We cannot declare an FTS table using Room entities, as there are no options for that. So, are you suggesting that we should create and manage this table manually, but still use a Room DAO for access?
We cannot declare an FTS table using Room entities, as there are no options for that. So, are you suggesting that we should create and manage this table manually, but still use a Room DAO for access?
cr...@gmail.com <cr...@gmail.com> #11
on the ETA: Sorry I cannot give one yet because we've not done the prioritization meeting for post IO.
#10: yes that is a workaround that you can do right now. It is not great but RawQuery will still properly work since it allows you to return any pojo. Probably it is better to isolate these into their custom dao which can use a protected RawQuery method and provide public APIs like any other dao.
#10: yes that is a workaround that you can do right now. It is not great but RawQuery will still properly work since it allows you to return any pojo. Probably it is better to isolate these into their custom dao which can use a protected RawQuery method and provide public APIs like any other dao.
ma...@phxend.com <ma...@phxend.com> #12
Still can't support it now?
jo...@bbva.com <jo...@bbva.com> #13
look forward to the new feature to be supported in ROOM!!
cr...@gmail.com <cr...@gmail.com> #14
Is FTS now supported in Room?
am...@autlan.com.mx <am...@autlan.com.mx> #15
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 07f547ca76ad20790b51b52bf969d45b6070295a
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:24:31 2018
Room FTS Support - Annotations
Created Fts3Entity & Fts4Entity annotations to declare a class as an
entity of an FTS table. FTS options are supported through annotation
parameters.
Bug: 62356416
Test: N/A
Change-Id: Ic627e38fd3ee5b1138146c2d1fd69e2a2f1365a1
M room/common/api/current.txt
A room/common/src/main/java/androidx/room/Fts3Entity.java
A room/common/src/main/java/androidx/room/Fts4Entity.java
A room/common/src/main/java/androidx/room/FtsOptions.java
https://android-review.googlesource.com/735152
https://goto.google.com/android-sha1/07f547ca76ad20790b51b52bf969d45b6070295a
Branch: androidx-master-dev
commit 07f547ca76ad20790b51b52bf969d45b6070295a
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:24:31 2018
Room FTS Support - Annotations
Created Fts3Entity & Fts4Entity annotations to declare a class as an
entity of an FTS table. FTS options are supported through annotation
parameters.
Bug: 62356416
Test: N/A
Change-Id: Ic627e38fd3ee5b1138146c2d1fd69e2a2f1365a1
M room/common/api/current.txt
A room/common/src/main/java/androidx/room/Fts3Entity.java
A room/common/src/main/java/androidx/room/Fts4Entity.java
A room/common/src/main/java/androidx/room/FtsOptions.java
da...@gmail.com <da...@gmail.com> #16
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 94867f06a611c3ada3dc95aa394d9e8485be2db5
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:38:26 2018
Room FTS Support - Processor
Created FtsEntityProcessor to process classes annotated with @FtsEntity.
EntityProcessor & FtsEntityProcessor now implement a common interface
BaseEntityProcessor that will either create the Entity or FtsEntity
value object based on the element annotation. FtsEntity extends Entity
which keep intact most of the Entity class reference around the compiler
code .
Created migration bundle class for FtsEntity to later handle migration.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:integration-tests:testapp:cC
Change-Id: I867635165b7e1dcb37806273c1c097fa4f450408
M room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/SqlParser.kt
A room/compiler/src/main/kotlin/androidx/room/processor/BaseEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FieldProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ShortcutMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ShortcutParameterProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Entity.kt
A room/compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
A room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
A room/compiler/src/main/kotlin/androidx/room/vo/LanguageId.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Pojo.kt
M room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/Fts3TableEntityProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
M room/compiler/src/test/kotlin/androidx/room/verifier/DatabaseVerifierTest.kt
M room/compiler/src/test/kotlin/androidx/room/vo/EntityTest.kt
A room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/Mail.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/MailDao.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestUtil.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Mail.java
M room/migration/src/main/java/androidx/room/migration/bundle/EntityBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.java
https://android-review.googlesource.com/735153
https://goto.google.com/android-sha1/94867f06a611c3ada3dc95aa394d9e8485be2db5
Branch: androidx-master-dev
commit 94867f06a611c3ada3dc95aa394d9e8485be2db5
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:38:26 2018
Room FTS Support - Processor
Created FtsEntityProcessor to process classes annotated with @FtsEntity.
EntityProcessor & FtsEntityProcessor now implement a common interface
BaseEntityProcessor that will either create the Entity or FtsEntity
value object based on the element annotation. FtsEntity extends Entity
which keep intact most of the Entity class reference around the compiler
code .
Created migration bundle class for FtsEntity to later handle migration.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:integration-tests:testapp:cC
Change-Id: I867635165b7e1dcb37806273c1c097fa4f450408
M room/compiler/src/main/kotlin/androidx/room/ext/element_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/SqlParser.kt
A room/compiler/src/main/kotlin/androidx/room/processor/BaseEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FieldProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/RawQueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ShortcutMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ShortcutParameterProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Entity.kt
A room/compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
A room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
A room/compiler/src/main/kotlin/androidx/room/vo/LanguageId.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Pojo.kt
M room/compiler/src/test/kotlin/androidx/room/processor/BaseEntityParserTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/BaseFtsEntityParserTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/FieldProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/Fts3TableEntityProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/PojoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/test_util.kt
M room/compiler/src/test/kotlin/androidx/room/verifier/DatabaseVerifierTest.kt
M room/compiler/src/test/kotlin/androidx/room/vo/EntityTest.kt
A room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/Mail.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/MailDao.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestDatabaseTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/TestUtil.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Mail.java
M room/migration/src/main/java/androidx/room/migration/bundle/EntityBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.java
cr...@gmail.com <cr...@gmail.com> #17
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 82c5c2d2588cb443aa44ebdf9549a3945aac7153
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Tue Aug 21 11:28:45 2018
Room FTS Support - BaseEntityProcessor Rename
Rename BaseEntityProcessor to EntityProcessor. This is done in a
separate commit than the renaming of EntityProcessor to
TableEntityProcessor so that we don't lose git history and it properly
shows as a rename and not an add / remove change.
Bug: 62356416
Test: N/A
Change-Id: I8f7f7e3d64453856cd062a956203b89ed1450cc5
M room/compiler/src/main/kotlin/androidx/room/processor/EntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Pojo.kt
https://android-review.googlesource.com/735894
https://goto.google.com/android-sha1/82c5c2d2588cb443aa44ebdf9549a3945aac7153
Branch: androidx-master-dev
commit 82c5c2d2588cb443aa44ebdf9549a3945aac7153
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Tue Aug 21 11:28:45 2018
Room FTS Support - BaseEntityProcessor Rename
Rename BaseEntityProcessor to EntityProcessor. This is done in a
separate commit than the renaming of EntityProcessor to
TableEntityProcessor so that we don't lose git history and it properly
shows as a rename and not an add / remove change.
Bug: 62356416
Test: N/A
Change-Id: I8f7f7e3d64453856cd062a956203b89ed1450cc5
M room/compiler/src/main/kotlin/androidx/room/processor/EntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/TableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Pojo.kt
ma...@phxend.com <ma...@phxend.com> #18
Project: platform/frameworks/support
Branch: androidx-master-dev
commit ff5d15a5e9aca547eb6a6756fb11aec0186e6a64
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:42:42 2018
Room FTS Support - InvalidationTracker
Updated InvalidationTracker to support adding triggers to FTS shadow
tables based on a lookup map provided. This enables reactive return
types for virtual table entities such as FTS.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:room-runtime:test \
room:integration-tests:testapp:cC
Change-Id: Ib8b2ac7b72e7ad6e170043b57035cf91f052ddf9
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
https://android-review.googlesource.com/735154
https://goto.google.com/android-sha1/ff5d15a5e9aca547eb6a6756fb11aec0186e6a64
Branch: androidx-master-dev
commit ff5d15a5e9aca547eb6a6756fb11aec0186e6a64
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:42:42 2018
Room FTS Support - InvalidationTracker
Updated InvalidationTracker to support adding triggers to FTS shadow
tables based on a lookup map provided. This enables reactive return
types for virtual table entities such as FTS.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:room-runtime:test \
room:integration-tests:testapp:cC
Change-Id: Ib8b2ac7b72e7ad6e170043b57035cf91f052ddf9
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/RxJava2Test.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
jo...@ascensoreslaplata.com.ar <jo...@ascensoreslaplata.com.ar> #19
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 8cce609814cb86d4a5ddeafefc07f7a0d07b841a
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:58:55 2018
Room FTS Support - Migration
Added fts entity migration validator that uses the sql create statement
for validation. This is necessary since fts options are not stored in
any public metadata table nor are available through any known pragma.
Created a FtsTableInfoValidatorWriter that will generate the code that
uses FtsTableInfo to get the create sql from sqlite_master so that FTS
options can be parsed and compared. TableInfoValidationWriter and
FtsTableInfoValidatorWriter now implement a common interface named
ValidationWriter that counts statement to be written.
Added a TypeAdapterFactory to SchemaBundle's GSON instance so that both
FtsEntityBundle and EntityBundle can be deserialized from the schema
json file.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:integration-tests:testapp:cC
Change-Id: I34c4d0206ef75f47e1541f7c1f0543c0f2b1e853
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
A room/compiler/src/main/kotlin/androidx/room/writer/FtsTableInfoValidationWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ValidationWriter.kt
M room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/1.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/2.json
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
M room/migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.java
A room/runtime/src/main/java/androidx/room/util/FtsTableInfo.java
A room/runtime/src/test/java/androidx/room/util/FtsTableInfoTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
https://android-review.googlesource.com/735155
https://goto.google.com/android-sha1/8cce609814cb86d4a5ddeafefc07f7a0d07b841a
Branch: androidx-master-dev
commit 8cce609814cb86d4a5ddeafefc07f7a0d07b841a
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Mon Aug 20 13:58:55 2018
Room FTS Support - Migration
Added fts entity migration validator that uses the sql create statement
for validation. This is necessary since fts options are not stored in
any public metadata table nor are available through any known pragma.
Created a FtsTableInfoValidatorWriter that will generate the code that
uses FtsTableInfo to get the create sql from sqlite_master so that FTS
options can be parsed and compared. TableInfoValidationWriter and
FtsTableInfoValidatorWriter now implement a common interface named
ValidationWriter that counts statement to be written.
Added a TypeAdapterFactory to SchemaBundle's GSON instance so that both
FtsEntityBundle and EntityBundle can be deserialized from the schema
json file.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:integration-tests:testapp:cC
Change-Id: I34c4d0206ef75f47e1541f7c1f0543c0f2b1e853
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
A room/compiler/src/main/kotlin/androidx/room/writer/FtsTableInfoValidationWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/TableInfoValidationWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ValidationWriter.kt
M room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/1.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/2.json
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
M room/migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.java
A room/runtime/src/main/java/androidx/room/util/FtsTableInfo.java
A room/runtime/src/test/java/androidx/room/util/FtsTableInfoTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
ma...@phxend.com <ma...@phxend.com> #20
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 641db546c6439004e83fb393e6ee5d2b6cf7b193
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Aug 30 15:05:50 2018
Room FTS Support - External Content
Support the content= FTS option in external content mode only. This
option allows users to specify another @Entity class in the FTS
annotation. The specified entity table will be used as content instead
of the FTS table creating its own content table.
To keep tables in sync as recommended by the SQLite documentation, Room
creates sync triggers so that all write operations are only done in the
reference table, avoiding bad indexed data in the FTS table due to the
user not performing write operations in both tables.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:room-migration:test \
room:integration-tests:testapp:cC
Change-Id: I26073295193618b211cc48e30aa8824b5130ed8e
M room/common/src/main/java/androidx/room/Fts4Entity.java
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
M room/compiler/src/main/kotlin/androidx/room/writer/FtsTableInfoValidationWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
M room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/1.json
M room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/2.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/3.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/4.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/FtsTestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/SongDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Song.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/SongDescription.java
M room/migration/build.gradle
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
M room/runtime/src/main/java/androidx/room/RoomOpenHelper.java
M room/runtime/src/main/java/androidx/room/util/DBUtil.java
https://android-review.googlesource.com/742701
https://goto.google.com/android-sha1/641db546c6439004e83fb393e6ee5d2b6cf7b193
Branch: androidx-master-dev
commit 641db546c6439004e83fb393e6ee5d2b6cf7b193
Author: Daniel Santiago Rivera <danysantiago@google.com>
Date: Thu Aug 30 15:05:50 2018
Room FTS Support - External Content
Support the content= FTS option in external content mode only. This
option allows users to specify another @Entity class in the FTS
annotation. The specified entity table will be used as content instead
of the FTS table creating its own content table.
To keep tables in sync as recommended by the SQLite documentation, Room
creates sync triggers so that all write operations are only done in the
reference table, avoiding bad indexed data in the FTS table due to the
user not performing write operations in both tables.
Bug: 62356416
Test: ./gradlew room:room-compiler:test \
room:room-migration:test \
room:integration-tests:testapp:cC
Change-Id: I26073295193618b211cc48e30aa8824b5130ed8e
M room/common/src/main/java/androidx/room/Fts4Entity.java
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/FtsTableEntityProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsEntity.kt
M room/compiler/src/main/kotlin/androidx/room/vo/FtsOptions.kt
M room/compiler/src/main/kotlin/androidx/room/writer/FtsTableInfoValidationWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/Fts4TableEntityProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/vo/FtsEntityTest.kt
M room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/1.json
M room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/2.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/3.json
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.FtsMigrationTest.FtsMigrationDb/4.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/FtsTestDatabase.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/SongDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/FtsMigrationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/Song.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/SongDescription.java
M room/migration/build.gradle
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/FtsEntityBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/FtsOptionsBundle.java
M room/migration/src/main/java/androidx/room/migration/bundle/SchemaBundle.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
M room/runtime/src/main/java/androidx/room/RoomOpenHelper.java
M room/runtime/src/main/java/androidx/room/util/DBUtil.java
di...@gmail.com <di...@gmail.com> #21
This feature will be available in Room 2.1.0
cl...@gmail.com <cl...@gmail.com> #22
Hi, I have a problem with the Fts4 annotation, when I mark the Entity class with the Fts4 annotation, my binding classes are not generated
jo...@ascensoreslaplata.com.ar <jo...@ascensoreslaplata.com.ar> #23
can you please file a new bug with more details on what is wrong with it?
A sample app that reproduces would make it much better.
Thanks.
A sample app that reproduces would make it much better.
Thanks.
ma...@phxend.com <ma...@phxend.com> #24
Hi,
Is there an example to show how how to use this in an entity? I was trying to look for test code which could help but did not find any annotation usage.
thanks
Is there an example to show how how to use this in an entity? I was trying to look for test code which could help but did not find any annotation usage.
thanks
ad...@arnoldgroupweb.com <ad...@arnoldgroupweb.com> #25
I found the example in 'SongDescription' class, I also tried it, it works for me.
thanks a lot!!
thanks a lot!!
cl...@gmail.com <cl...@gmail.com> #26
We are updating the docs so should be available soon.
Meanwhile, the FTS integration test class might give some directions:
https://android.googlesource.com/platform/frameworks/support/+/androidx-master-dev/room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/FtsTableTest.java
Meanwhile, the FTS integration test class might give some directions:
ma...@phxend.com <ma...@phxend.com> #27
#25 can you post a link to the "SongDescription" class you're talking about? Can't find it anywhere :-(
ad...@arnoldgroupweb.com <ad...@arnoldgroupweb.com> #28
jo...@gmail.com <jo...@gmail.com> #30
Comment has been deleted.
cr...@gmail.com <cr...@gmail.com> #31
Is there any plan support icu tokenizer?
ma...@phxend.com <ma...@phxend.com> #32
It seems that the icu tokenizer is still not supported in version 2.2.1
cl...@gmail.com <cl...@gmail.com> #33
Confirmo nueva incidencia, la cual fue solucionada por soporte (Recuperación de archivos entre el 4 y 10 de septiembre).
Por favor escalar el problema.
Por favor escalar el problema.
di...@gmail.com <di...@gmail.com> #34
Happening every night now. The scripts that update our database overnight are not running because they get removed without our doing (how?) before they are scheduled to run.
Restoring the files temporarily brings them back, but is not a sustainable solution since they are removed again hours later. This "issue" is unacceptable. Google, let us know what's going on.
Restoring the files temporarily brings them back, but is not a sustainable solution since they are removed again hours later. This "issue" is unacceptable. Google, let us know what's going on.
ch...@arnoldgroupweb.com <ch...@arnoldgroupweb.com> #35
Also confirming that it happened again.
di...@gmail.com <di...@gmail.com> #36
I can confirm our files are being removed multiple times per day. Earlier today, around 8am, I checked and they were missing, so I restored them. Later, around 10:30am a colleague reported problems, so I checked and the files were missing again, so I restored them again. Now, around 10pm I checked again, and they are missing again, so I restored them once more. We'll see what the state is tomorrow morning.
I will likely need to create new scripts by copying the code from the scripts that keep getting deleted. This is a tedious task that shouldn't be required, but seems unavoidable.
I will likely need to create new scripts by copying the code from the scripts that keep getting deleted. This is a tedious task that shouldn't be required, but seems unavoidable.
ma...@phxend.com <ma...@phxend.com> #37
I wondered about some sort of workaround, but how will you keep the new scripts from getting deleted again? I believe the project itself is tied to the deployment? Is there a way to write a script to recover deleted items every day? I suppose that script would get deleted as well.
da...@gmail.com <da...@gmail.com> #38
How is this not solved on high priority? When they had already discovered the root cause of the problem in 2016.
jo...@ascensoreslaplata.com.ar <jo...@ascensoreslaplata.com.ar> #39
di... (
I will likely need to create new scripts by copying the code from the scripts that keep getting deleted. This is a tedious task...
I fully understand that this is annoying but if you will face the task of recreate the scripts, dont forget that you can use
di...@gmail.com <di...@gmail.com> #40
It looks like our scripts are still in place and haven't been removed for over 24 hours. The last time I submitted the form to recover the files was yesterday morning 8:20am, Sept. 12. Is it possible this problem has been resolved? Can others confirm what they see?
ma...@phxend.com <ma...@phxend.com> #41
I also haven't lost a file for 24 hours, but Google provided me a partial explanation. They said my scripts were associated with an "old style" site. It is true I originally developed them there, but they are independently used in new sites now. They said if I made new scripts completely independent of the old site the issue would be solved. I asked if something can just be updated in the existing scripts.
dr...@gmail.com <dr...@gmail.com> #42
I'm attempting to create scripts and getting into a similar issue.
I am getting an error 500 when I attempt it to go Google Sheets > Extensions > App Script.
However accessing it through this URL seems to work:https://script.google.com/home
I am getting an error 500 when I attempt it to go Google Sheets > Extensions > App Script.
However accessing it through this URL seems to work:
ma...@phxend.com <ma...@phxend.com> #43
I don't think it is a good solution, but making a copy of the disappearing script and redeploying does seem to end the issue for me. There is a copy button within the information view of each script project. I made a copy of the older project, deployed, and updated my Google site to reference the new script's generated URL. Google's explanation was that my scripts were originally associated with an "old site" that is deprecated. I wish they provided an option to disconnect as I have been using the scripts independently for years.
di...@gmail.com <di...@gmail.com> #44
Same here. Recreating and redeploying the script ends the issue.
jp...@google.com <jp...@google.com> #45
I have reported this to the engineering team and future updates will be shared here. Thank you for your patience.
Description
Google site that incorporates a Google Apps Script via URL. But since today it tells me that "The file you requested does not exist." This happens with every site and even with the backup you had on other free Google accounts. I can't get support and I would like to find a solution, I would appreciate any help to recover my code.
Thank you very much in advance.