mirror of
https://github.com/nextcloud/server.git
synced 2024-07-28 08:15:55 +02:00
fix(dav): add missing database index for dav_shares resourceid, type and access
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com> Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud> Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com> Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com> Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud> Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com> Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud> Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com> Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud> Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com> Co-authored-by: Daniel <mail@danielkesselberg.de> Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com> Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
This commit is contained in:
parent
ba306950e6
commit
ff7e2c1837
@ -271,6 +271,7 @@ return array(
|
||||
'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => $baseDir . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
|
||||
'OCA\\DAV\\HookManager' => $baseDir . '/../lib/HookManager.php',
|
||||
'OCA\\DAV\\Listener\\ActivityUpdaterListener' => $baseDir . '/../lib/Listener/ActivityUpdaterListener.php',
|
||||
'OCA\\DAV\\Listener\\AddMissingIndicesListener' => $baseDir . '/../lib/Listener/AddMissingIndicesListener.php',
|
||||
'OCA\\DAV\\Listener\\AddressbookListener' => $baseDir . '/../lib/Listener/AddressbookListener.php',
|
||||
'OCA\\DAV\\Listener\\BirthdayListener' => $baseDir . '/../lib/Listener/BirthdayListener.php',
|
||||
'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => $baseDir . '/../lib/Listener/CalendarContactInteractionListener.php',
|
||||
|
@ -286,6 +286,7 @@ class ComposerStaticInitDAV
|
||||
'OCA\\DAV\\Files\\Sharing\\PublicLinkCheckPlugin' => __DIR__ . '/..' . '/../lib/Files/Sharing/PublicLinkCheckPlugin.php',
|
||||
'OCA\\DAV\\HookManager' => __DIR__ . '/..' . '/../lib/HookManager.php',
|
||||
'OCA\\DAV\\Listener\\ActivityUpdaterListener' => __DIR__ . '/..' . '/../lib/Listener/ActivityUpdaterListener.php',
|
||||
'OCA\\DAV\\Listener\\AddMissingIndicesListener' => __DIR__ . '/..' . '/../lib/Listener/AddMissingIndicesListener.php',
|
||||
'OCA\\DAV\\Listener\\AddressbookListener' => __DIR__ . '/..' . '/../lib/Listener/AddressbookListener.php',
|
||||
'OCA\\DAV\\Listener\\BirthdayListener' => __DIR__ . '/..' . '/../lib/Listener/BirthdayListener.php',
|
||||
'OCA\\DAV\\Listener\\CalendarContactInteractionListener' => __DIR__ . '/..' . '/../lib/Listener/CalendarContactInteractionListener.php',
|
||||
|
@ -49,6 +49,7 @@ use OCA\DAV\Events\SubscriptionCreatedEvent;
|
||||
use OCA\DAV\Events\SubscriptionDeletedEvent;
|
||||
use OCA\DAV\HookManager;
|
||||
use OCA\DAV\Listener\ActivityUpdaterListener;
|
||||
use OCA\DAV\Listener\AddMissingIndicesListener;
|
||||
use OCA\DAV\Listener\AddressbookListener;
|
||||
use OCA\DAV\Listener\BirthdayListener;
|
||||
use OCA\DAV\Listener\CalendarContactInteractionListener;
|
||||
@ -79,6 +80,7 @@ use OCP\Calendar\IManager as ICalendarManager;
|
||||
use OCP\Config\BeforePreferenceDeletedEvent;
|
||||
use OCP\Config\BeforePreferenceSetEvent;
|
||||
use OCP\Contacts\IManager as IContactsManager;
|
||||
use OCP\DB\Events\AddMissingIndicesEvent;
|
||||
use OCP\EventDispatcher\IEventDispatcher;
|
||||
use OCP\Federation\Events\TrustedServerRemovedEvent;
|
||||
use OCP\Files\AppData\IAppDataFactory;
|
||||
@ -129,6 +131,8 @@ class Application extends App implements IBootstrap {
|
||||
/**
|
||||
* Register event listeners
|
||||
*/
|
||||
$context->registerEventListener(AddMissingIndicesEvent::class, AddMissingIndicesListener::class);
|
||||
|
||||
$context->registerEventListener(CalendarCreatedEvent::class, ActivityUpdaterListener::class);
|
||||
$context->registerEventListener(CalendarDeletedEvent::class, ActivityUpdaterListener::class);
|
||||
$context->registerEventListener(CalendarDeletedEvent::class, CalendarObjectReminderUpdaterListener::class);
|
||||
@ -235,6 +239,7 @@ class Application extends App implements IBootstrap {
|
||||
|
||||
// Here we should recalculate if reminders should be sent to new or old sharees
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
public function registerContactsManager(IContactsManager $cm, IAppContainer $container): void {
|
||||
|
35
apps/dav/lib/Listener/AddMissingIndicesListener.php
Normal file
35
apps/dav/lib/Listener/AddMissingIndicesListener.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
|
||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
*/
|
||||
namespace OCA\DAV\Listener;
|
||||
|
||||
use OCP\DB\Events\AddMissingIndicesEvent;
|
||||
use OCP\EventDispatcher\Event;
|
||||
use OCP\EventDispatcher\IEventListener;
|
||||
|
||||
/**
|
||||
* @template-implements IEventListener<Event|AddMissingIndicesEvent>
|
||||
*/
|
||||
class AddMissingIndicesListener implements IEventListener {
|
||||
|
||||
public function handle(Event $event): void {
|
||||
if (!($event instanceof AddMissingIndicesEvent)) {
|
||||
return;
|
||||
}
|
||||
$event->addMissingIndex(
|
||||
'dav_shares',
|
||||
'dav_shares_resourceid_type',
|
||||
['resourceid', 'type']
|
||||
);
|
||||
$event->addMissingIndex(
|
||||
'dav_shares',
|
||||
'dav_shares_resourceid_access',
|
||||
['resourceid', 'access']
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@ -471,6 +471,9 @@ class Version1004Date20170825134824 extends SimpleMigrationStep {
|
||||
]);
|
||||
$table->setPrimaryKey(['id']);
|
||||
$table->addUniqueIndex(['principaluri', 'resourceid', 'type', 'publicuri'], 'dav_shares_index');
|
||||
// modified on 2024-6-21 to add performance improving indices on new instances
|
||||
$table->addIndex(['resourceid', 'type'], 'dav_shares_resourceid_type');
|
||||
$table->addIndex(['resourceid', 'access'], 'dav_shares_resourceid_access');
|
||||
}
|
||||
return $schema;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user