Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbenakamoorthi <benaka.moorthi@gmail.com>2012-10-03 19:23:44 +0400
committerbenakamoorthi <benaka.moorthi@gmail.com>2012-10-03 19:23:44 +0400
commit92dd264cc921727550fee8a2dadd1cdf7dcc57b9 (patch)
tree3f28cfaee1c1e38dc05470161182ccd5cd52c696 /core/Archive
parent4e780db842288f3c80f1e2732b72184f52749c78 (diff)
Fixes #3311, use more granular SELECT in Piwik_Archive_Single::preFetchBlob & add test to make sure extra blobs are not selected.
git-svn-id: http://dev.piwik.org/svn/trunk@7095 59fd770c-687e-43c8-a1e3-f5a4ff64c105
Diffstat (limited to 'core/Archive')
-rw-r--r--core/Archive/Single.php19
1 files changed, 17 insertions, 2 deletions
diff --git a/core/Archive/Single.php b/core/Archive/Single.php
index 86492a078d..87b17688a8 100644
--- a/core/Archive/Single.php
+++ b/core/Archive/Single.php
@@ -98,6 +98,16 @@ class Piwik_Archive_Single extends Piwik_Archive
}
/**
+ * Returns the blob cache. For testing.
+ *
+ * @return array
+ */
+ public function getBlobCache()
+ {
+ return $this->blobCached;
+ }
+
+ /**
* Returns the pretty date of this Archive, eg. 'Thursday 20th March 2008'
*
* @return string
@@ -409,11 +419,16 @@ class Piwik_Archive_Single extends Piwik_Archive
$db = Zend_Registry::get('db');
$hasBlobs = $db->hasBlobDataType();
+
+ // select blobs w/ name like "$name_[0-9]+" w/o using RLIKE
+ $nameEnd = strlen($name) + 2;
$query = $db->query("SELECT value, name
FROM $tableBlob
WHERE idarchive = ?
- AND name LIKE '$name%'",
- array( $this->idArchive )
+ AND (name = ? OR
+ (name LIKE ? AND SUBSTRING(name, $nameEnd, 1) >= '0'
+ AND SUBSTRING(name, $nameEnd, 1) <= '9') )",
+ array( $this->idArchive, $name, $name.'%' )
);
while($row = $query->fetch())