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>pull/46036/head
@@ -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 { |
@@ -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; | |||
} |