summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2013-03-04 22:26:03 +0100
committerRobin Appelman <icewind@owncloud.com>2013-03-04 22:26:03 +0100
commit56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7 (patch)
tree96aeec07e6d274c1dddc4acfe5c772fe5cc13f4f
parent416607e559747a88eb42f367f17b70714aa96ef2 (diff)
downloadnextcloud-server-56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7.tar.gz
nextcloud-server-56ae4bb6e9a08c5ada36b4c42ae4e22eaf288df7.zip
Cache: also check if the file id is already in the cache during upgrade
Should solve upgrade issues if only some of the configured storages were migrated previously
-rw-r--r--lib/files/cache/upgrade.php13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/files/cache/upgrade.php b/lib/files/cache/upgrade.php
index 1fe4c584686..4d98abb2f8d 100644
--- a/lib/files/cache/upgrade.php
+++ b/lib/files/cache/upgrade.php
@@ -64,7 +64,7 @@ class Upgrade {
* @param array $data the data for the new cache
*/
function insert($data) {
- if (!$this->inCache($data['storage'], $data['path_hash'])) {
+ if (!$this->inCache($data['storage'], $data['path_hash'], $data['id'])) {
$insertQuery = \OC_DB::prepare('INSERT INTO `*PREFIX*filecache`
( `fileid`, `storage`, `path`, `path_hash`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `encrypted` )
VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)');
@@ -78,12 +78,19 @@ class Upgrade {
/**
* @param string $storage
* @param string $pathHash
+ * @param string $id
* @return bool
*/
- function inCache($storage, $pathHash) {
+ function inCache($storage, $pathHash, $id) {
$query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
$result = $query->execute(array($storage, $pathHash));
- return (bool)$result->fetchRow();
+ if ($result->fetchRow()) {
+ return true;
+ } else {
+ $query = \OC_DB::prepare('SELECT `fileid` FROM `*PREFIX*filecache` WHERE `fileid` = ?');
+ $result = $query->execute(array($id));
+ return (bool)$result->fetchRow();
+ }
}
/**