Fixed
Status Update
Comments
yb...@google.com <yb...@google.com>
[Deleted User] <[Deleted User]> #2
since these are in public API (:/) we need to do this in 1.2
ch...@beyls.net <ch...@beyls.net> #3
since it is already marked as deprecated, we can probably do it by now.
ro...@gmail.com <ro...@gmail.com> #4
Opening diff shortly
ch...@beyls.net <ch...@beyls.net> #5
Project: platform/frameworks/support
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request fromhttps://github.com/androidx/androidx/pull/61 .
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
https://android-review.googlesource.com/1396827
Branch: androidx-master-dev
commit d576cbdc911cba16638a44fd8223391a90a07ef7
Author: Mike Nakhimovich <digitalbuddha@users.noreply.github.com>
Date: Tue Aug 11 09:30:34 2020
[GH] Hide deprecated internal API.
## Proposed Changes
* `RoomDatabase.java` has protected `mCallbacks` field which is leaking in the API docs, we should @Hide it.
## Testing
Test: Ran unit tests locally
## Issues Fixed
Fixes: 76109329
This is an imported pull request from
Resolves #61
Github-Pr-Head-Sha: 6440daa3a63752c7f9d5ba2a390248cd85bc634f
GitOrigin-RevId: fe92d8466a59b44b218b6ca3cbd57dcda17992f7
Change-Id: Id599cdf5b02b32bdae0166266fb7da967598fe92
A room/runtime/api/current.ignore
M room/runtime/api/current.txt
M room/runtime/api/public_plus_experimental_current.txt
M room/runtime/api/restricted_current.txt
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
[Deleted User] <[Deleted User]> #6
any news?
ch...@gmail.com <ch...@gmail.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?
yb...@google.com <yb...@google.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).
ch...@gmail.com <ch...@gmail.com> #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?
mm...@commonsware.com <mm...@commonsware.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?
yb...@google.com <yb...@google.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.
zh...@gmail.com <zh...@gmail.com> #12
Still can't support it now?
sa...@gmail.com <sa...@gmail.com> #13
look forward to the new feature to be supported in ROOM!!
da...@google.com <da...@google.com>
pa...@gmail.com <pa...@gmail.com> #14
Is FTS now supported in Room?
ap...@google.com <ap...@google.com> #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
ap...@google.com <ap...@google.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
ap...@google.com <ap...@google.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
ap...@google.com <ap...@google.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
ap...@google.com <ap...@google.com> #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
ap...@google.com <ap...@google.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
[Deleted User] <[Deleted User]> #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
yb...@google.com <yb...@google.com> #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.
sr...@gmail.com <sr...@gmail.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
sr...@gmail.com <sr...@gmail.com> #25
I found the example in 'SongDescription' class, I also tried it, it works for me.
thanks a lot!!
thanks a lot!!
yb...@google.com <yb...@google.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:
da...@gmail.com <da...@gmail.com> #27
#25 can you post a link to the "SongDescription" class you're talking about? Can't find it anywhere :-(
xm...@gmail.com <xm...@gmail.com> #30
When support icu Tokenizer?
to...@gmail.com <to...@gmail.com> #31
Is there any plan support icu tokenizer?
ji...@gmail.com <ji...@gmail.com> #32
It seems that the icu tokenizer is still not supported in version 2.2.1
Description
Version used: 1.0.0-alpha2
Devices/Android versions reproduced on: N/A
Room does not currently support FTS3 or FTS4 virtual tables. These tables are however supported by all Android versions.
Example SQL statement to create one of those tables:
CREATE VIRTUAL TABLE event_titles USING FTS3(title TEXT, subtitle TEXT);
I suggest adding a parameter to the @Entity annotation. Example:
@Entity(tableName = "event_titles", tableType = FTS3)
Those tables only support String columns, in addition to the integer primary key. This can be enforced by Room at compile time.
Then, a DAO can query these columns using full-text search:
@Query("SELECT * FROM event_titles WHERE title MATCH :word")
List<Event> findEvents(String word);