diff options
3 files changed, 12 insertions, 3 deletions
diff --git a/core/java/android/database/sqlite/SQLiteConnection.java b/core/java/android/database/sqlite/SQLiteConnection.java index 2a791ec9a42e..316c796f17ed 100644 --- a/core/java/android/database/sqlite/SQLiteConnection.java +++ b/core/java/android/database/sqlite/SQLiteConnection.java @@ -293,9 +293,7 @@ public final class SQLiteConnection implements CancellationSignal.OnCancelListen (mConfiguration.openFlags & SQLiteDatabase.ENABLE_WRITE_AHEAD_LOGGING) != 0; // Use compatibility WAL unless an app explicitly set journal/synchronous mode // or DISABLE_COMPATIBILITY_WAL flag is set - final boolean useCompatibilityWal = mConfiguration.journalMode == null - && mConfiguration.syncMode == null - && (mConfiguration.openFlags & SQLiteDatabase.DISABLE_COMPATIBILITY_WAL) == 0; + final boolean useCompatibilityWal = mConfiguration.useCompatibilityWal(); if (walEnabled || useCompatibilityWal) { setJournalMode("WAL"); if (useCompatibilityWal && SQLiteCompatibilityWalFlags.areFlagsSet()) { diff --git a/core/java/android/database/sqlite/SQLiteConnectionPool.java b/core/java/android/database/sqlite/SQLiteConnectionPool.java index dadb95b7a741..e51930237527 100644 --- a/core/java/android/database/sqlite/SQLiteConnectionPool.java +++ b/core/java/android/database/sqlite/SQLiteConnectionPool.java @@ -23,6 +23,7 @@ import android.os.Looper; import android.os.Message; import android.os.OperationCanceledException; import android.os.SystemClock; +import android.text.TextUtils; import android.util.Log; import android.util.PrefixPrinter; import android.util.Printer; @@ -1111,6 +1112,11 @@ public final class SQLiteConnectionPool implements Closeable { printer.println(" Open: " + mIsOpen); printer.println(" Max connections: " + mMaxConnectionPoolSize); printer.println(" Total execution time: " + mTotalExecutionTimeCounter); + printer.println(" Configuration: openFlags=" + mConfiguration.openFlags + + ", useCompatibilityWal=" + mConfiguration.useCompatibilityWal() + + ", journalMode=" + TextUtils.emptyIfNull(mConfiguration.journalMode) + + ", syncMode=" + TextUtils.emptyIfNull(mConfiguration.syncMode)); + if (SQLiteCompatibilityWalFlags.areFlagsSet()) { printer.println(" Compatibility WAL settings: compatibility_wal_supported=" + SQLiteCompatibilityWalFlags diff --git a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java index 275043f83743..8b9dfcf51ce5 100644 --- a/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java +++ b/core/java/android/database/sqlite/SQLiteDatabaseConfiguration.java @@ -194,6 +194,11 @@ public final class SQLiteDatabaseConfiguration { return path.equalsIgnoreCase(MEMORY_DB_PATH); } + boolean useCompatibilityWal() { + return journalMode == null && syncMode == null + && (openFlags & SQLiteDatabase.DISABLE_COMPATIBILITY_WAL) == 0; + } + private static String stripPathForLogs(String path) { if (path.indexOf('@') == -1) { return path; |