summaryrefslogtreecommitdiffstats
path: root/lib/files/mapper.php
diff options
context:
space:
mode:
authorRobin Appelman <icewind@owncloud.com>2013-02-10 11:49:37 +0100
committerRobin Appelman <icewind@owncloud.com>2013-02-10 11:49:37 +0100
commit0c05244f8bdc083f54b01cbde05c3df7bd97e618 (patch)
tree1a0d5323f7169cbbcb6b608427ef15b904b28864 /lib/files/mapper.php
parentb44c18d1640f4ac395eecbad5a33dcb9af1d4038 (diff)
downloadnextcloud-server-0c05244f8bdc083f54b01cbde05c3df7bd97e618.tar.gz
nextcloud-server-0c05244f8bdc083f54b01cbde05c3df7bd97e618.zip
Mapper: use md5 hashes for database indexes
indexing the full path exeeds the maximum index length for MySQL
Diffstat (limited to 'lib/files/mapper.php')
-rw-r--r--lib/files/mapper.php12
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/files/mapper.php b/lib/files/mapper.php
index 90e4e1ca669..71b665e49bb 100644
--- a/lib/files/mapper.php
+++ b/lib/files/mapper.php
@@ -114,8 +114,8 @@ class Mapper
private function resolveLogicPath($logicPath) {
$logicPath = $this->stripLast($logicPath);
- $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path` = ?');
- $result = $query->execute(array($logicPath));
+ $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `logic_path_hash` = ?');
+ $result = $query->execute(array(md5($logicPath)));
$result = $result->fetchRow();
return $result['physic_path'];
@@ -123,8 +123,8 @@ class Mapper
private function resolvePhysicalPath($physicalPath) {
$physicalPath = $this->stripLast($physicalPath);
- $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path` = ?');
- $result = $query->execute(array($physicalPath));
+ $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*file_map` WHERE `physic_path_hash` = ?');
+ $result = $query->execute(array(md5($physicalPath)));
$result = $result->fetchRow();
return $result['logic_path'];
@@ -151,8 +151,8 @@ class Mapper
}
private function insert($logicPath, $physicalPath) {
- $query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`,`physic_path`) VALUES(?,?)');
- $query->execute(array($logicPath, $physicalPath));
+ $query = \OC_DB::prepare('INSERT INTO `*PREFIX*file_map`(`logic_path`, `physic_path`, `logic_path_hash`, `physic_path_hash`) VALUES(?, ?, ?, ?)');
+ $query->execute(array($logicPath, $physicalPath, md5($logicPath), md5($physicalPath)));
}
private function slugifyPath($path, $index=null) {