summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorFyodor Kupolov <fkupolov@google.com>2018-06-01 12:11:42 -0700
committerFyodor Kupolov <fkupolov@google.com>2018-06-01 12:11:42 -0700
commit8ba2089165b39dcf595444cc535fb57627fd8944 (patch)
tree664b115bf7b201bc465e03c8478e7c1c0ddfaf6e /core/java/android
parent7c0e462b20b4a424f07f73260121864252f99fdc (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')
-rw-r--r--core/java/android/database/sqlite/SQLiteConnection.java4
-rw-r--r--core/java/android/database/sqlite/SQLiteDatabase.java5
-rw-r--r--core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java3
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;