summaryrefslogtreecommitdiffstats
path: root/lib
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 /lib
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
Diffstat (limited to 'lib')
-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();
+ }
}
/**