[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

hans at chromium.org hans at chromium.org
Wed Dec 22 15:58:52 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit aad3d4a566d1f1873372702bf30627977c897869
Author: hans at chromium.org <hans at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Nov 17 14:06:54 2010 +0000

    2010-11-17  Hans Wennborg  <hans at chromium.org>
    
            Reviewed by Jeremy Orlow.
    
            IndexedDB: IDBKey::whereSyntax should impose conditions on all columns
            https://bugs.webkit.org/show_bug.cgi?id=49601
    
            The WHERE clause should specifiy a condition for each key column to
            make sure that the ObjectStoreData_composit index can be used when
            querying the object store based on key. Not using the index causes
            severe performance degradation for common IDB operations.
    
            * storage/IDBKey.cpp:
            (WebCore::IDBKey::whereSyntax):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72204 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 53a2ff6..1e0c140 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,18 @@
+2010-11-17  Hans Wennborg  <hans at chromium.org>
+
+        Reviewed by Jeremy Orlow.
+
+        IndexedDB: IDBKey::whereSyntax should impose conditions on all columns
+        https://bugs.webkit.org/show_bug.cgi?id=49601
+
+        The WHERE clause should specifiy a condition for each key column to
+        make sure that the ObjectStoreData_composit index can be used when
+        querying the object store based on key. Not using the index causes
+        severe performance degradation for common IDB operations.
+
+        * storage/IDBKey.cpp:
+        (WebCore::IDBKey::whereSyntax):
+
 2010-11-17  Eric Uhrhane  <ericu at chromium.org>
 
         Reviewed by David Levin.
diff --git a/WebCore/storage/IDBKey.cpp b/WebCore/storage/IDBKey.cpp
index d0f3c2b..8e411b7 100644
--- a/WebCore/storage/IDBKey.cpp
+++ b/WebCore/storage/IDBKey.cpp
@@ -93,9 +93,9 @@ String IDBKey::whereSyntax(String qualifiedTableName) const
 {
     switch (m_type) {
     case IDBKey::StringType:
-        return qualifiedTableName + "keyString = ?  ";
+        return qualifiedTableName + "keyString = ?  AND  " + qualifiedTableName + "keyDate IS NULL  AND  " + qualifiedTableName + "keyNumber IS NULL  ";
     case IDBKey::NumberType:
-        return qualifiedTableName + "keyNumber = ?  ";
+        return qualifiedTableName + "keyString IS NULL  AND  " + qualifiedTableName + "keyDate IS NULL  AND  " + qualifiedTableName + "keyNumber = ?  ";
     // FIXME: Implement date.
     case IDBKey::NullType:
         return qualifiedTableName + "keyString IS NULL  AND  " + qualifiedTableName + "keyDate IS NULL  AND  " + qualifiedTableName + "keyNumber IS NULL  ";

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list