Browse Source

Merge pull request #15171 from nextcloud/backport/15167/stable31

[stable31] fix(object-rooms): Add an index on the room object columns
pull/15174/head
Anna 5 months ago
committed by GitHub
parent
commit
3bb0d02dc1
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 5
      lib/AppInfo/Application.php
  2. 35
      lib/Listener/AddMissingIndicesListener.php
  3. 1
      lib/Migration/Version3003Date20180720162342.php

5
lib/AppInfo/Application.php

@ -82,6 +82,7 @@ use OCA\Talk\Federation\Proxy\TalkV1\Notifier\RoomModifiedListener as TalkV1Room
use OCA\Talk\Files\Listener as FilesListener;
use OCA\Talk\Files\TemplateLoader as FilesTemplateLoader;
use OCA\Talk\Flow\RegisterOperationsListener;
use OCA\Talk\Listener\AddMissingIndicesListener;
use OCA\Talk\Listener\BeforeUserLoggedOutListener;
use OCA\Talk\Listener\BotListener;
use OCA\Talk\Listener\CalDavEventListener;
@ -137,6 +138,7 @@ use OCP\Collaboration\AutoComplete\AutoCompleteFilterEvent;
use OCP\Collaboration\Resources\IProviderManager;
use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent;
use OCP\Config\BeforePreferenceSetEvent;
use OCP\DB\Events\AddMissingIndicesEvent;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudFederationProvider;
use OCP\Federation\ICloudFederationProviderManager;
@ -350,6 +352,9 @@ class Application extends App implements IBootstrap {
$context->registerSearchProvider(CurrentMessageSearch::class);
$context->registerSearchProvider(MessageSearch::class);
// Fix database issues
$context->registerEventListener(AddMissingIndicesEvent::class, AddMissingIndicesListener::class);
$context->registerDashboardWidget(TalkWidget::class);
$context->registerNotifierService(Notifier::class);

35
lib/Listener/AddMissingIndicesListener.php

@ -0,0 +1,35 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Talk\Listener;
use OCP\DB\Events\AddMissingIndicesEvent;
use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
/**
* @template-implements IEventListener<AddMissingIndicesEvent>
*/
class AddMissingIndicesListener implements IEventListener {
#[\Override]
public function handle(Event $event): void {
if (!($event instanceof AddMissingIndicesEvent)) {
// Unrelated
return;
}
/**
* Added to @see Version3003Date20180720162342
*/
$event->addMissingIndex(
'talk_rooms',
'tr_room_object',
['object_type', 'object_id']
);
}
}

1
lib/Migration/Version3003Date20180720162342.php

@ -38,6 +38,7 @@ class Version3003Date20180720162342 extends SimpleMigrationStep {
'length' => 64,
'default' => '',
]);
$table->addIndex(['object_type', 'object_id'], 'tr_room_object');
}
return $schema;

Loading…
Cancel
Save