diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/repair.php | 2 | ||||
-rw-r--r-- | lib/repair/removegetetagentries.php | 59 |
2 files changed, 61 insertions, 0 deletions
diff --git a/lib/private/repair.php b/lib/private/repair.php index 43350995beb..a61ab4becd9 100644 --- a/lib/private/repair.php +++ b/lib/private/repair.php @@ -33,6 +33,7 @@ use OC\Repair\AssetCache; use OC\Repair\CleanTags; use OC\Repair\Collation; use OC\Repair\DropOldJobs; +use OC\Repair\RemoveGetETagEntries; use OC\Repair\SqliteAutoincrement; use OC\Repair\DropOldTables; use OC\Repair\FillETags; @@ -108,6 +109,7 @@ class Repair extends BasicEmitter { new CleanTags(\OC_DB::getConnection()), new DropOldTables(\OC_DB::getConnection()), new DropOldJobs(\OC::$server->getJobList()), + new RemoveGetETagEntries(\OC_DB::getConnection()), ); } diff --git a/lib/repair/removegetetagentries.php b/lib/repair/removegetetagentries.php new file mode 100644 index 00000000000..40040763654 --- /dev/null +++ b/lib/repair/removegetetagentries.php @@ -0,0 +1,59 @@ +<?php +/** + * @author Morris Jobke <hey@morrisjobke.de> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\Repair; + +use OC\Hooks\BasicEmitter; +use OCP\IDBConnection; + +class RemoveGetETagEntries extends BasicEmitter { + + /** + * @var IDBConnection + */ + protected $connection; + + /** + * @param IDBConnection $connection + */ + public function __construct(IDBConnection $connection) { + $this->connection = $connection; + } + + public function getName() { + return 'Remove getetag entries in properties table'; + } + + /** + * Removes all entries with the key "{DAV:}getetag" from the table properties + */ + public function run() { + $sql = 'DELETE FROM `*PREFIX*properties`' + . ' WHERE `propertyname` = ?'; + $deletedRows = $this->connection->executeUpdate($sql, ['{DAV:}getetag']); + + $this->emit( + '\OC\Repair', + 'info', + ['Removed ' . $deletedRows . ' unneeded "{DAV:}getetag" entries from properties table.'] + ); + } +} |