diff --git a/apps/files_sharing/appinfo/Migrations/Version20171215103657.php b/apps/files_sharing/appinfo/Migrations/Version20171215103657.php new file mode 100644 index 000000000000..6a54197778fb --- /dev/null +++ b/apps/files_sharing/appinfo/Migrations/Version20171215103657.php @@ -0,0 +1,46 @@ + + * + * @copyright Copyright (c) 2017, ownCloud GmbH. + * @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 + * + */ + +namespace OCA\Files_Sharing\Migrations; + +use Doctrine\DBAL\Schema\Schema; +use OCP\Migration\ISchemaMigration; + +/** + * Another index to optimise share loading + */ +class Version20171215103657 implements ISchemaMigration { + + public function changeSchema(Schema $schema, array $options) { + $indexName = 'item_source_type_index'; + $columns = ['item_source', 'share_type', 'item_type']; + + $prefix = $options['tablePrefix']; + + if ($schema->hasTable("${prefix}share")) { + $table = $schema->getTable("${prefix}share"); + if (!$table->hasIndex($indexName)) { + $table->addIndex($columns, $indexName); + } + } + } +} \ No newline at end of file