[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