Unreviewed, rolling out r169587.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2014 17:21:20 +0000 (17:21 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Jun 2014 17:21:20 +0000 (17:21 +0000)
https://bugs.webkit.org/show_bug.cgi?id=133552

Calls a pure virtual method, crashes (Requested by ap on
#webkit).

Reverted changeset:

"WebKit should adopt journal_mode=wal for all SQLite
databases."
https://bugs.webkit.org/show_bug.cgi?id=133496
http://trac.webkit.org/changeset/169587

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@169619 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/sql/SQLiteDatabase.cpp

index ce67c9d..0004d8b 100644 (file)
@@ -1,3 +1,18 @@
+2014-06-05  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r169587.
+        https://bugs.webkit.org/show_bug.cgi?id=133552
+
+        Calls a pure virtual method, crashes (Requested by ap on
+        #webkit).
+
+        Reverted changeset:
+
+        "WebKit should adopt journal_mode=wal for all SQLite
+        databases."
+        https://bugs.webkit.org/show_bug.cgi?id=133496
+        http://trac.webkit.org/changeset/169587
+
 2014-06-05  Frédéric Wang  <fred.wang@free.fr>
 
         Apply Character-level mirroring to stretchy operators in RTL mode.
index 05557cf..4cdbb8b 100644 (file)
@@ -99,9 +99,19 @@ bool SQLiteDatabase::open(const String& filename, bool forWebSQLDatabase)
     if (!SQLiteStatement(*this, ASCIILiteral("PRAGMA temp_store = MEMORY;")).executeCommand())
         LOG_ERROR("SQLite database could not set temp_store to memory");
 
-    if (!SQLiteStatement(*this, ASCIILiteral("PRAGMA journal_mode = WAL;")).executeCommand())
+    SQLiteStatement walStatement(*this, ASCIILiteral("PRAGMA journal_mode=WAL;"));
+    int result = walStatement.step();
+    if (result != SQLITE_OK && result != SQLITE_ROW)
         LOG_ERROR("SQLite database failed to set journal_mode to WAL, error: %s",  lastErrorMsg());
 
+#ifndef NDEBUG
+    if (result == SQLITE_ROW) {
+        String mode = walStatement.getColumnText(0);
+        if (!equalIgnoringCase(mode, "wal"))
+            LOG_ERROR("journal_mode of database should be 'wal', but is '%s'", mode.utf8().data());
+    }
+#endif
+
     return isOpen();
 }