Fixed
Status Update
Comments
yb...@google.com <yb...@google.com> #2
we've initially planned this for 1.0.0 but didn't make the cut.
vn...@gmail.com <vn...@gmail.com> #3
I would add my +1 to this, if only that Room would recognize views (creation being secondary as it can be accomplished with raw queries).
yb...@google.com <yb...@google.com> #4
+1 For this. View support would be very helpful.
vn...@gmail.com <vn...@gmail.com> #5
+1 For this
vn...@gmail.com <vn...@gmail.com> #6
+1 For this
yb...@google.com <yb...@google.com>
yb...@google.com <yb...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 86ccd847759ea146464aaaf9ed128342d704b3ac
Author: Yuichi Araki <yaraki@google.com>
Date: Mon Aug 06 12:15:14 2018
Database View
Use @DatabaseView to create a view.
Bug: 67033276
Test: DatabaseViewTest, DatabaseViewProcessorTest, DatabaseVerifierTest,
Test: DatabaseWriterTest, SQLiteOpenHelperWriterTest,
Test: DatabaseViewSyncTest, InvalidationTrackerTest
Change-Id: I4a909add53f82fc6816b8d944278a3c9abef735d
M room/common/api/current.txt
M room/common/src/main/java/androidx/room/Database.java
A room/common/src/main/java/androidx/room/DatabaseView.java
M room/common/src/main/java/androidx/room/SkipQueryVerification.java
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/ParserErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/DatabaseViewProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Database.kt
A room/compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ViewInfoValidationWriter.kt
A room/compiler/src/test/data/common/input/UserSummary.java
M room/compiler/src/test/data/databasewriter/input/ComplexDatabase.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.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/writer/DaoWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/dao/PetDao.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/DogWithOwner.java
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/8.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationDb.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetWithUser.java
M room/migration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.java
M room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.java
A room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/util/ViewInfo.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
https://android-review.googlesource.com/731045
https://goto.google.com/android-sha1/86ccd847759ea146464aaaf9ed128342d704b3ac
Branch: androidx-master-dev
commit 86ccd847759ea146464aaaf9ed128342d704b3ac
Author: Yuichi Araki <yaraki@google.com>
Date: Mon Aug 06 12:15:14 2018
Database View
Use @DatabaseView to create a view.
Bug: 67033276
Test: DatabaseViewTest, DatabaseViewProcessorTest, DatabaseVerifierTest,
Test: DatabaseWriterTest, SQLiteOpenHelperWriterTest,
Test: DatabaseViewSyncTest, InvalidationTrackerTest
Change-Id: I4a909add53f82fc6816b8d944278a3c9abef735d
M room/common/api/current.txt
M room/common/src/main/java/androidx/room/Database.java
A room/common/src/main/java/androidx/room/DatabaseView.java
M room/common/src/main/java/androidx/room/SkipQueryVerification.java
M room/compiler/src/main/kotlin/androidx/room/ext/javapoet_ext.kt
M room/compiler/src/main/kotlin/androidx/room/parser/ParserErrors.kt
M room/compiler/src/main/kotlin/androidx/room/processor/DatabaseProcessor.kt
A room/compiler/src/main/kotlin/androidx/room/processor/DatabaseViewProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/processor/ProcessorErrors.kt
M room/compiler/src/main/kotlin/androidx/room/verifier/DatabaseVerifier.kt
M room/compiler/src/main/kotlin/androidx/room/vo/Database.kt
A room/compiler/src/main/kotlin/androidx/room/vo/DatabaseView.kt
M room/compiler/src/main/kotlin/androidx/room/writer/DatabaseWriter.kt
M room/compiler/src/main/kotlin/androidx/room/writer/SQLiteOpenHelperWriter.kt
A room/compiler/src/main/kotlin/androidx/room/writer/ViewInfoValidationWriter.kt
A room/compiler/src/test/data/common/input/UserSummary.java
M room/compiler/src/test/data/databasewriter/input/ComplexDatabase.java
M room/compiler/src/test/data/databasewriter/output/ComplexDatabase.java
M room/compiler/src/test/kotlin/androidx/room/processor/DaoProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/DatabaseProcessorTest.kt
A room/compiler/src/test/kotlin/androidx/room/processor/DatabaseViewProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.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/writer/DaoWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/DatabaseWriterTest.kt
M room/compiler/src/test/kotlin/androidx/room/writer/SQLiteOpenHelperWriterTest.kt
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/TestDatabase.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/dao/PetDao.java
M room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/test/PetDaoTest.java
A room/integration-tests/autovaluetestapp/src/androidTest/java/androidx/room/integration/autovaluetestapp/vo/DogWithOwner.java
A room/integration-tests/testapp/schemas/androidx.room.integration.testapp.migration.MigrationDb/8.json
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/TestDatabase.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/dao/PetDao.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationDb.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/migration/MigrationTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/DatabaseViewTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/InvalidationTest.java
M room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/LiveDataQueryTest.java
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/vo/PetWithUser.java
M room/migration/src/main/java/androidx/room/migration/bundle/BundleUtil.java
M room/migration/src/main/java/androidx/room/migration/bundle/DatabaseBundle.java
A room/migration/src/main/java/androidx/room/migration/bundle/DatabaseViewBundle.java
M room/migration/src/test/java/androidx/room/migration/bundle/DatabaseBundleTest.java
A room/migration/src/test/java/androidx/room/migration/bundle/DatabaseViewBundleTest.java
A room/runtime/src/androidTest/java/androidx/room/migration/ViewInfoTest.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/util/ViewInfo.java
M room/runtime/src/test/java/androidx/room/InvalidationTrackerTest.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
be...@google.com <be...@google.com> #9
I don't remember when I was this excited about a feature. Great work, can't wait to see it land in an official release.
yb...@google.com <yb...@google.com>
xm...@gmail.com <xm...@gmail.com> #10
"Thanks" seems so inadequate, but thanks :-)
yb...@google.com <yb...@google.com> #11
hopefully we'll have this in 2.1 . What is your use case, are you accessing the same database from different processes or are you creating 2 instance of the same RoomDatabase in the same process?
xm...@gmail.com <xm...@gmail.com> #12
Create one instance of RoomDatabase, and use LiveData paging query the datas and when querying, i also use the db connect insert the data, the query always wait the insert end and return
xm...@gmail.com <xm...@gmail.com> #13
BTW, other thread insert the data, or update the data
yb...@google.com <yb...@google.com> #14
if you are in the same process, don't use multiple RoomDatabase instances.
xm...@gmail.com <xm...@gmail.com> #15
Why the LiveData been blocked? the query always waiting for the insert end and return
ap...@google.com <ap...@google.com> #16
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 41bbdfb46058e7ef3ea6aa21ac8d7a3c7642fa1d
Author: Yuichi Araki <yaraki@google.com>
Date: Wed May 23 17:38:58 2018
Multi-instance invalidation
Developers can now sync observers for InvalidationTracker and LiveData
between multiple RoomDatabase instances by
RoomDatabase.Builder.enableMultiInstanceInvalidation(). This can also be
used for database instances in other processes. All the instances have
to be using the same database file.
When multi-instance invalidation is turned on, all the tables are
observed by an instance of MultiInstanceInvalidationClient, and
invalidation detected in one instance is broadcast to other instances by
remote procedure call.
Test: MultiInstanceInvalidationTest
Bug: 62334005
Bug: 80464228
Change-Id: I76033c5ac543ddaef735be06f828b7d7d607883a
M room/integration-tests/testapp/build.gradle
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java
M room/integration-tests/testapp/src/main/AndroidManifest.xml
A room/integration-tests/testapp/src/main/aidl/androidx/room/integration/testapp/ISampleDatabaseService.aidl
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/SampleDatabaseService.java
M room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/CustomerDao.java
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/Product.java
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/ProductDao.java
M room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/SampleDatabase.java
M room/runtime/api/current.txt
M room/runtime/src/main/AndroidManifest.xml
A room/runtime/src/main/aidl/androidx/room/IMultiInstanceInvalidationCallback.aidl
A room/runtime/src/main/aidl/androidx/room/IMultiInstanceInvalidationService.aidl
M room/runtime/src/main/java/androidx/room/DatabaseConfiguration.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/MultiInstanceInvalidationClient.java
A room/runtime/src/main/java/androidx/room/MultiInstanceInvalidationService.java
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
https://android-review.googlesource.com/720919
https://goto.google.com/android-sha1/41bbdfb46058e7ef3ea6aa21ac8d7a3c7642fa1d
Branch: androidx-master-dev
commit 41bbdfb46058e7ef3ea6aa21ac8d7a3c7642fa1d
Author: Yuichi Araki <yaraki@google.com>
Date: Wed May 23 17:38:58 2018
Multi-instance invalidation
Developers can now sync observers for InvalidationTracker and LiveData
between multiple RoomDatabase instances by
RoomDatabase.Builder.enableMultiInstanceInvalidation(). This can also be
used for database instances in other processes. All the instances have
to be using the same database file.
When multi-instance invalidation is turned on, all the tables are
observed by an instance of MultiInstanceInvalidationClient, and
invalidation detected in one instance is broadcast to other instances by
remote procedure call.
Test: MultiInstanceInvalidationTest
Bug: 62334005
Bug: 80464228
Change-Id: I76033c5ac543ddaef735be06f828b7d7d607883a
M room/integration-tests/testapp/build.gradle
A room/integration-tests/testapp/src/androidTest/java/androidx/room/integration/testapp/test/MultiInstanceInvalidationTest.java
M room/integration-tests/testapp/src/main/AndroidManifest.xml
A room/integration-tests/testapp/src/main/aidl/androidx/room/integration/testapp/ISampleDatabaseService.aidl
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/SampleDatabaseService.java
M room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/CustomerDao.java
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/Product.java
A room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/ProductDao.java
M room/integration-tests/testapp/src/main/java/androidx/room/integration/testapp/database/SampleDatabase.java
M room/runtime/api/current.txt
M room/runtime/src/main/AndroidManifest.xml
A room/runtime/src/main/aidl/androidx/room/IMultiInstanceInvalidationCallback.aidl
A room/runtime/src/main/aidl/androidx/room/IMultiInstanceInvalidationService.aidl
M room/runtime/src/main/java/androidx/room/DatabaseConfiguration.java
M room/runtime/src/main/java/androidx/room/InvalidationTracker.java
A room/runtime/src/main/java/androidx/room/MultiInstanceInvalidationClient.java
A room/runtime/src/main/java/androidx/room/MultiInstanceInvalidationService.java
M room/runtime/src/main/java/androidx/room/RoomDatabase.java
M room/testing/src/main/java/androidx/room/testing/MigrationTestHelper.java
Description
Version used: 1.0.0-alpha1
Devices/Android versions reproduced on: Emulator