diff options
| author | Fyodor Kupolov <fkupolov@google.com> | 2018-06-01 12:11:42 -0700 |
|---|---|---|
| committer | Fyodor Kupolov <fkupolov@google.com> | 2018-06-01 12:11:42 -0700 |
| commit | 8ba2089165b39dcf595444cc535fb57627fd8944 (patch) | |
| tree | 664b115bf7b201bc465e03c8478e7c1c0ddfaf6e /core/java/android | |
| parent | 7c0e462b20b4a424f07f73260121864252f99fdc (diff) | |
New behavior of setSynchronousMode
setSynchronousMode is now applicable to any journal mode.
This can be useful for apps that want to use stricter durability
settings for their database.
Test: android.database.sqlite.cts.SQLiteDatabaseTest
Bug: 86953240
Change-Id: I7dbaa6d0bc0975da8067e87b402f63f51b4add10
Diffstat (limited to 'core/java/android')
3 files changed, 7 insertions, 5 deletions
diff --git a/core/java/android/database/sqlite/SQLiteConnection.java b/core/java/android/database/sqlite/SQLiteConnection.java index 316c796f17ed..101fb821f4ce 100644 --- a/core/java/android/database/sqlite/SQLiteConnection.java +++ b/core/java/android/database/sqlite/SQLiteConnection.java @@ -296,7 +296,9 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen final boolean useCompatibilityWal = mConfiguration.useCompatibilityWal(); if (walEnabled || useCompatibilityWal) { setJournalMode("WAL"); - if (useCompatibilityWal && SQLiteCompatibilityWalFlags.areFlagsSet()) { + if (mConfiguration.syncMode != null) { + setSyncMode(mConfiguration.syncMode); + } else if (useCompatibilityWal && SQLiteCompatibilityWalFlags.areFlagsSet()) { setSyncMode(SQLiteCompatibilityWalFlags.getWALSyncMode()); } else { setSyncMode(SQLiteGlobal.getWALSyncMode()); diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java index b463d8d0c01f..6adae25fc38d 100644 --- a/core/java/android/database/sqlite/SQLiteDatabase.java +++ b/core/java/android/database/sqlite/SQLiteDatabase.java @@ -2413,8 +2413,7 @@ public final class SQLiteDatabase extends SQLiteClosable { /** * Returns <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a>. - * This value will only be used when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag - * is not set, otherwise a system wide default will be used. + * If not set, a system wide default will be used. * @see Builder#setSynchronousMode(String) */ @Nullable @@ -2601,7 +2600,7 @@ public final class SQLiteDatabase extends SQLiteClosable { /** * Sets <a href="https://sqlite.org/pragma.html#pragma_synchronous">synchronous mode</a> - * to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} flag is not set. + * . * @return */ @NonNull diff --git a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java index 8b9dfcf51ce5..bb62268ce742 100644 --- a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java +++ b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java @@ -117,8 +117,9 @@ public final class SQLiteDatabaseConfiguration { public String journalMode; /** - * Synchronous mode to use when {@link SQLiteDatabase#ENABLE_WRITE_AHEAD_LOGGING} is not set. + * Synchronous mode to use. * <p>Default is returned by {@link SQLiteGlobal#getDefaultSyncMode()} + * or {@link SQLiteGlobal#getWALSyncMode()} depending on journal mode */ public String syncMode; |
