From 6ff0916cb31770198c5948831c3a9374d38fbd6f Mon Sep 17 00:00:00 2001 From: Git'Fellow <12234510+solracsf@users.noreply.github.com> Date: Fri, 18 Oct 2024 13:19:28 +0200 Subject: [PATCH 1/2] refactor(db): Apply query prepared statements --- .../CleanupInvitationTokenJob.php | 11 ++-- .../AbstractPrincipalBackend.php | 53 +++++++------------ .../lib/Migration/BuildSocialSearchIndex.php | 27 +++------- .../Migration/RefreshWebcalJobRegistrar.php | 21 ++------ ...emoveDeletedUsersCalendarSubscriptions.php | 16 +++--- apps/files/lib/Command/RepairTree.php | 8 +-- apps/files_external/lib/Command/Notify.php | 2 +- .../lib/Migration/SetPasswordColumn.php | 18 +++---- .../files_sharing/lib/ShareBackend/Folder.php | 4 +- apps/settings/lib/Settings/Admin/Server.php | 2 +- apps/user_ldap/lib/Helper.php | 13 +++-- apps/workflowengine/lib/Manager.php | 2 +- core/Command/Db/ConvertType.php | 6 +-- .../Collaboration/Resources/Manager.php | 32 +++++------ .../Collaboration/Resources/Resource.php | 2 +- .../Sharded/CrossShardMoveHelper.php | 2 +- lib/private/Repair/Collation.php | 16 ++---- lib/private/Repair/RepairMimeTypes.php | 8 +-- lib/private/TagManager.php | 17 +++--- 19 files changed, 96 insertions(+), 164 deletions(-) diff --git a/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php b/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php index 6fe10c576bbd6..ddbb22d9563fa 100644 --- a/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php +++ b/apps/dav/lib/BackgroundJob/CleanupInvitationTokenJob.php @@ -14,12 +14,11 @@ class CleanupInvitationTokenJob extends TimedJob { - /** @var IDBConnection */ - private $db; - - public function __construct(IDBConnection $db, ITimeFactory $time) { + public function __construct( + private IDBConnection $db, + ITimeFactory $time, + ) { parent::__construct($time); - $this->db = $db; // Run once a day at off-peak time $this->setInterval(24 * 60 * 60); @@ -31,6 +30,6 @@ public function run($argument) { $query->delete('calendar_invitations') ->where($query->expr()->lt('expiration', $query->createNamedParameter($this->time->getTime()))) - ->execute(); + ->executeStatement(); } } diff --git a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php index 83e2935a46e2a..e2f87766dc1ec 100644 --- a/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php +++ b/apps/dav/lib/CalDAV/ResourceBooking/AbstractPrincipalBackend.php @@ -25,20 +25,6 @@ abstract class AbstractPrincipalBackend implements BackendInterface { - /** @var IDBConnection */ - private $db; - - /** @var IUserSession */ - private $userSession; - - /** @var IGroupManager */ - private $groupManager; - - private LoggerInterface $logger; - - /** @var ProxyMapper */ - private $proxyMapper; - /** @var string */ private $principalPrefix; @@ -54,19 +40,16 @@ abstract class AbstractPrincipalBackend implements BackendInterface { /** @var string */ private $cuType; - public function __construct(IDBConnection $dbConnection, - IUserSession $userSession, - IGroupManager $groupManager, - LoggerInterface $logger, - ProxyMapper $proxyMapper, + public function __construct( + private IDBConnection $dbConnection, + private IUserSession $userSession, + private IGroupManager $groupManager, + private LoggerInterface $logger, + private ProxyMapper $proxyMapper, string $principalPrefix, string $dbPrefix, - string $cuType) { - $this->db = $dbConnection; - $this->userSession = $userSession; - $this->groupManager = $groupManager; - $this->logger = $logger; - $this->proxyMapper = $proxyMapper; + string $cuType, + ) { $this->principalPrefix = $principalPrefix; $this->dbTableName = 'calendar_' . $dbPrefix . 's'; $this->dbMetaDataTableName = $this->dbTableName . '_md'; @@ -96,12 +79,12 @@ public function getPrincipalsByPrefix($prefixPath): array { $query = $this->db->getQueryBuilder(); $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname']) ->from($this->dbTableName); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $metaDataQuery = $this->db->getQueryBuilder(); $metaDataQuery->select([$this->dbForeignKeyName, 'key', 'value']) ->from($this->dbMetaDataTableName); - $metaDataStmt = $metaDataQuery->execute(); + $metaDataStmt = $metaDataQuery->executeQuery(); $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC); $metaDataById = []; @@ -152,7 +135,7 @@ public function getPrincipalByPath($path) { ->from($this->dbTableName) ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId))) ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$row) { @@ -163,7 +146,7 @@ public function getPrincipalByPath($path) { $metaDataQuery->select(['key', 'value']) ->from($this->dbMetaDataTableName) ->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id']))); - $metaDataStmt = $metaDataQuery->execute(); + $metaDataStmt = $metaDataQuery->executeQuery(); $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC); $metadata = []; @@ -183,7 +166,7 @@ public function getPrincipalById($id): ?array { $query->select(['id', 'backend_id', 'resource_id', 'email', 'displayname']) ->from($this->dbTableName) ->where($query->expr()->eq('id', $query->createNamedParameter($id))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$row) { @@ -194,7 +177,7 @@ public function getPrincipalById($id): ?array { $metaDataQuery->select(['key', 'value']) ->from($this->dbMetaDataTableName) ->where($metaDataQuery->expr()->eq($this->dbForeignKeyName, $metaDataQuery->createNamedParameter($row['id']))); - $metaDataStmt = $metaDataQuery->execute(); + $metaDataStmt = $metaDataQuery->executeQuery(); $metaDataRows = $metaDataStmt->fetchAll(\PDO::FETCH_ASSOC); $metadata = []; @@ -243,7 +226,7 @@ public function searchPrincipals($prefixPath, array $searchProperties, $test = ' ->from($this->dbTableName) ->where($query->expr()->iLike('email', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%'))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $principals = []; while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { if (!$this->isAllowedToAccessResource($row, $usersGroups)) { @@ -262,7 +245,7 @@ public function searchPrincipals($prefixPath, array $searchProperties, $test = ' ->from($this->dbTableName) ->where($query->expr()->iLike('displayname', $query->createNamedParameter('%' . $this->db->escapeLikeParameter($value) . '%'))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $principals = []; while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { if (!$this->isAllowedToAccessResource($row, $usersGroups)) { @@ -430,7 +413,7 @@ public function findByUri($uri, $principalPrefix): ?string { ->from($this->dbTableName) ->where($query->expr()->eq('email', $query->createNamedParameter($email))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$row) { @@ -457,7 +440,7 @@ public function findByUri($uri, $principalPrefix): ?string { ->from($this->dbTableName) ->where($query->expr()->eq('backend_id', $query->createNamedParameter($backendId))) ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($resourceId))); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $row = $stmt->fetch(\PDO::FETCH_ASSOC); if (!$row) { diff --git a/apps/dav/lib/Migration/BuildSocialSearchIndex.php b/apps/dav/lib/Migration/BuildSocialSearchIndex.php index 16100196e1b7c..08f13787d7872 100644 --- a/apps/dav/lib/Migration/BuildSocialSearchIndex.php +++ b/apps/dav/lib/Migration/BuildSocialSearchIndex.php @@ -13,26 +13,11 @@ class BuildSocialSearchIndex implements IRepairStep { - /** @var IDBConnection */ - private $db; - - /** @var IJobList */ - private $jobList; - - /** @var IConfig */ - private $config; - - /** - * @param IDBConnection $db - * @param IJobList $jobList - * @param IConfig $config - */ - public function __construct(IDBConnection $db, - IJobList $jobList, - IConfig $config) { - $this->db = $db; - $this->jobList = $jobList; - $this->config = $config; + public function __construct( + private IDBConnection $db, + private IJobList $jobList, + private IConfig $config, + ) { } /** @@ -56,7 +41,7 @@ public function run(IOutput $output) { $query->select($query->func()->max('cardid')) ->from('cards_properties') ->where($query->expr()->eq('name', $query->createNamedParameter('X-SOCIALPROFILE'))); - $maxId = (int)$query->execute()->fetchOne(); + $maxId = (int)$query->executeQuery()->fetchOne(); if ($maxId === 0) { return; diff --git a/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php b/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php index 793b55166404d..235a3a78395b2 100644 --- a/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php +++ b/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php @@ -16,21 +16,10 @@ class RefreshWebcalJobRegistrar implements IRepairStep { - /** @var IDBConnection */ - private $connection; - - /** @var IJobList */ - private $jobList; - - /** - * FixBirthdayCalendarComponent constructor. - * - * @param IDBConnection $connection - * @param IJobList $jobList - */ - public function __construct(IDBConnection $connection, IJobList $jobList) { - $this->connection = $connection; - $this->jobList = $jobList; + public function __construct( + private IDBConnection $connection, + private IJobList $jobList, + ) { } /** @@ -47,7 +36,7 @@ public function run(IOutput $output) { $query = $this->connection->getQueryBuilder(); $query->select(['principaluri', 'uri']) ->from('calendarsubscriptions'); - $stmt = $query->execute(); + $stmt = $query->executeQuery(); $count = 0; while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) { diff --git a/apps/dav/lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php b/apps/dav/lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php index 0122ed37b06ff..034d269f27f6b 100644 --- a/apps/dav/lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php +++ b/apps/dav/lib/Migration/RemoveDeletedUsersCalendarSubscriptions.php @@ -15,11 +15,6 @@ use OCP\Migration\IRepairStep; class RemoveDeletedUsersCalendarSubscriptions implements IRepairStep { - /** @var IDBConnection */ - private $connection; - - /** @var IUserManager */ - private $userManager; /** @var int */ private $progress = 0; @@ -29,9 +24,10 @@ class RemoveDeletedUsersCalendarSubscriptions implements IRepairStep { private const SUBSCRIPTIONS_CHUNK_SIZE = 1000; - public function __construct(IDBConnection $connection, IUserManager $userManager) { - $this->connection = $connection; - $this->userManager = $userManager; + public function __construct( + private IDBConnection $connection, + private IUserManager $userManager, + ) { } /** @@ -69,7 +65,7 @@ private function countSubscriptions(): int { $query = $qb->select($qb->func()->count('*')) ->from('calendarsubscriptions'); - $result = $query->execute(); + $result = $query->executeQuery(); $count = $result->fetchOne(); $result->closeCursor(); @@ -92,7 +88,7 @@ private function checkSubscriptions(): void { ->setMaxResults(self::SUBSCRIPTIONS_CHUNK_SIZE) ->setFirstResult($this->progress); - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { $username = $this->getPrincipal($row['principaluri']); if (!$this->userManager->userExists($username)) { diff --git a/apps/files/lib/Command/RepairTree.php b/apps/files/lib/Command/RepairTree.php index 622ccba48a39d..e5b28983cf25e 100644 --- a/apps/files/lib/Command/RepairTree.php +++ b/apps/files/lib/Command/RepairTree.php @@ -60,7 +60,7 @@ public function execute(InputInterface $input, OutputInterface $output): int { 'path' => $row['parent_path'] . '/' . $row['name'], 'storage' => $row['parent_storage'], ]); - $query->execute(); + $query->executeStatement(); } } } @@ -78,14 +78,14 @@ private function getFileId(int $storage, string $path) { ->from('filecache') ->where($query->expr()->eq('storage', $query->createNamedParameter($storage))) ->andWhere($query->expr()->eq('path_hash', $query->createNamedParameter(md5($path)))); - return $query->execute()->fetch(\PDO::FETCH_COLUMN); + return $query->executeQuery()->fetch(\PDO::FETCH_COLUMN); } private function deleteById(int $fileId): void { $query = $this->connection->getQueryBuilder(); $query->delete('filecache') ->where($query->expr()->eq('fileid', $query->createNamedParameter($fileId))); - $query->execute(); + $query->executeStatement(); } private function findBrokenTreeBits(): array { @@ -108,6 +108,6 @@ private function findBrokenTreeBits(): array { $query->expr()->neq('f.storage', 'p.storage') )); - return $query->execute()->fetchAll(); + return $query->executeQuery()->fetchAll(); } } diff --git a/apps/files_external/lib/Command/Notify.php b/apps/files_external/lib/Command/Notify.php index cd1889264b3e3..758263d207292 100644 --- a/apps/files_external/lib/Command/Notify.php +++ b/apps/files_external/lib/Command/Notify.php @@ -176,7 +176,7 @@ private function getStorageIds(int $mountId, string $path): array { ->innerJoin('m', 'filecache', 'f', $qb->expr()->eq('m.storage_id', 'f.storage')) ->where($qb->expr()->eq('mount_id', $qb->createNamedParameter($mountId, IQueryBuilder::PARAM_INT))) ->andWhere($qb->expr()->eq('path_hash', $qb->createNamedParameter($pathHash, IQueryBuilder::PARAM_STR))) - ->execute() + ->executeQuery() ->fetchAll(); } diff --git a/apps/files_sharing/lib/Migration/SetPasswordColumn.php b/apps/files_sharing/lib/Migration/SetPasswordColumn.php index 0185bfad43509..b06efe1b4724f 100644 --- a/apps/files_sharing/lib/Migration/SetPasswordColumn.php +++ b/apps/files_sharing/lib/Migration/SetPasswordColumn.php @@ -18,16 +18,10 @@ */ class SetPasswordColumn implements IRepairStep { - /** @var IDBConnection */ - private $connection; - - /** @var IConfig */ - private $config; - - - public function __construct(IDBConnection $connection, IConfig $config) { - $this->connection = $connection; - $this->config = $config; + public function __construct( + private IDBConnection $connection, + private IConfig $config, + ) { } /** @@ -54,7 +48,7 @@ public function run(IOutput $output) { ->set('password', 'share_with') ->where($query->expr()->eq('share_type', $query->createNamedParameter(IShare::TYPE_LINK))) ->andWhere($query->expr()->isNotNull('share_with')); - $result = $query->execute(); + $result = $query->executeStatement(); if ($result === 0) { // No link updated, no need to run the second query @@ -67,7 +61,7 @@ public function run(IOutput $output) { ->set('share_with', $clearQuery->createNamedParameter(null)) ->where($clearQuery->expr()->eq('share_type', $clearQuery->createNamedParameter(IShare::TYPE_LINK))); - $clearQuery->execute(); + $clearQuery->executeStatement(); } protected function shouldRun() { diff --git a/apps/files_sharing/lib/ShareBackend/Folder.php b/apps/files_sharing/lib/ShareBackend/Folder.php index fefdd7f667ce8..f0e9841de0b88 100644 --- a/apps/files_sharing/lib/ShareBackend/Folder.php +++ b/apps/files_sharing/lib/ShareBackend/Folder.php @@ -19,7 +19,7 @@ public function getChildren($itemSource) { ->where( $qb->expr()->eq('mimetype', $qb->createNamedParameter('httpd/unix-directory')) ); - $result = $qb->execute(); + $result = $qb->executeQuery(); $row = $result->fetch(); $result->closeCursor(); @@ -41,7 +41,7 @@ public function getChildren($itemSource) { $qb->expr()->in('parent', $parents) ); - $result = $qb->execute(); + $result = $qb->executeQuery(); $parents = []; while ($file = $result->fetch()) { diff --git a/apps/settings/lib/Settings/Admin/Server.php b/apps/settings/lib/Settings/Admin/Server.php index 0f253ddf6b1f3..e067ef02e71ff 100644 --- a/apps/settings/lib/Settings/Admin/Server.php +++ b/apps/settings/lib/Settings/Admin/Server.php @@ -65,7 +65,7 @@ protected function cronMaxAge(): int { ->orderBy('last_checked', 'ASC') ->setMaxResults(1); - $result = $query->execute(); + $result = $query->executeQuery(); if ($row = $result->fetch()) { $maxAge = (int)$row['last_checked']; } else { diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index 9bca3eec26b72..bc85b3a9a2344 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -13,15 +13,14 @@ use OCP\IDBConnection; class Helper { - private IConfig $config; - private IDBConnection $connection; + /** @var CappedMemoryCache */ protected CappedMemoryCache $sanitizeDnCache; - public function __construct(IConfig $config, - IDBConnection $connection) { - $this->config = $config; - $this->connection = $connection; + public function __construct( + private IConfig $config, + private IDBConnection $connection, + ) { $this->sanitizeDnCache = new CappedMemoryCache(10000); } @@ -145,7 +144,7 @@ public function deleteServerConfiguration($prefix) { $query->andWhere($query->expr()->notLike('configkey', $query->createNamedParameter('s%'))); } - $deletedRows = $query->execute(); + $deletedRows = $query->executeStatement(); return $deletedRows !== 0; } diff --git a/apps/workflowengine/lib/Manager.php b/apps/workflowengine/lib/Manager.php index 7d14fc834491e..7750fb43187f1 100644 --- a/apps/workflowengine/lib/Manager.php +++ b/apps/workflowengine/lib/Manager.php @@ -365,7 +365,7 @@ public function updateOperation( ->set('entity', $query->createNamedParameter($entity)) ->set('events', $query->createNamedParameter(json_encode($events))) ->where($query->expr()->eq('id', $query->createNamedParameter($id))); - $query->execute(); + $query->executeStatement(); $this->connection->commit(); } catch (Exception $e) { $this->connection->rollBack(); diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php index 43b2d62a90013..2197f8a492d9d 100644 --- a/core/Command/Db/ConvertType.php +++ b/core/Command/Db/ConvertType.php @@ -298,7 +298,7 @@ protected function copyTable(Connection $fromDB, Connection $toDB, Table $table, $query->automaticTablePrefix(false); $query->select($query->func()->count('*', 'num_entries')) ->from($table->getName()); - $result = $query->execute(); + $result = $query->executeQuery(); $count = $result->fetchOne(); $result->closeCursor(); @@ -337,7 +337,7 @@ protected function copyTable(Connection $fromDB, Connection $toDB, Table $table, for ($chunk = 0; $chunk < $numChunks; $chunk++) { $query->setFirstResult($chunk * $chunkSize); - $result = $query->execute(); + $result = $query->executeQuery(); try { $toDB->beginTransaction(); @@ -359,7 +359,7 @@ protected function copyTable(Connection $fromDB, Connection $toDB, Table $table, $insertQuery->setParameter($key, $value); } } - $insertQuery->execute(); + $insertQuery->executeStatement(); } $result->closeCursor(); diff --git a/lib/private/Collaboration/Resources/Manager.php b/lib/private/Collaboration/Resources/Manager.php index 8d1e4b13287d1..21018fcadca51 100644 --- a/lib/private/Collaboration/Resources/Manager.php +++ b/lib/private/Collaboration/Resources/Manager.php @@ -45,7 +45,7 @@ public function getCollection(int $id): ICollection { $query->select('*') ->from(self::TABLE_COLLECTIONS) ->where($query->expr()->eq('id', $query->createNamedParameter($id, IQueryBuilder::PARAM_INT))); - $result = $query->execute(); + $result = $query->executeQuery(); $row = $result->fetch(); $result->closeCursor(); @@ -74,7 +74,7 @@ public function getCollectionForUser(int $id, ?IUser $user): ICollection { ) ) ->where($query->expr()->eq('c.id', $query->createNamedParameter($id, IQueryBuilder::PARAM_INT))); - $result = $query->execute(); + $result = $query->executeQuery(); $row = $result->fetch(); $result->closeCursor(); @@ -116,7 +116,7 @@ public function searchCollections(IUser $user, string $filter, int $limit = 50, $query->andWhere($query->expr()->iLike('c.name', $query->createNamedParameter('%' . $this->connection->escapeLikeParameter($filter) . '%'))); } - $result = $query->execute(); + $result = $query->executeQuery(); $collections = []; $foundResults = 0; @@ -146,7 +146,7 @@ public function newCollection(string $name): ICollection { ->values([ 'name' => $query->createNamedParameter($name), ]); - $query->execute(); + $query->executeStatement(); return new Collection($this, $this->connection, $query->getLastInsertId(), $name); } @@ -178,7 +178,7 @@ public function getResourceForUser(string $type, string $id, ?IUser $user): IRes ) ->where($query->expr()->eq('r.resource_type', $query->createNamedParameter($type, IQueryBuilder::PARAM_STR))) ->andWhere($query->expr()->eq('r.resource_id', $query->createNamedParameter($id, IQueryBuilder::PARAM_STR))); - $result = $query->execute(); + $result = $query->executeQuery(); $row = $result->fetch(); $result->closeCursor(); @@ -215,7 +215,7 @@ public function getResourcesByCollectionForUser(ICollection $collection, ?IUser ->where($query->expr()->eq('r.collection_id', $query->createNamedParameter($collection->getId(), IQueryBuilder::PARAM_INT))); $resources = []; - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { $access = $row['access'] === null ? null : (bool)$row['access']; $resources[] = new Resource($this, $this->connection, $row['resource_type'], $row['resource_id'], $user, $access); @@ -309,7 +309,7 @@ protected function checkAccessCacheForUserByResource(IResource $resource, ?IUser ->setMaxResults(1); $hasAccess = null; - $result = $query->execute(); + $result = $query->executeQuery(); if ($row = $result->fetch()) { $hasAccess = (bool)$row['access']; } @@ -329,7 +329,7 @@ protected function checkAccessCacheForUserByCollection(ICollection $collection, ->setMaxResults(1); $hasAccess = null; - $result = $query->execute(); + $result = $query->executeQuery(); if ($row = $result->fetch()) { $hasAccess = (bool)$row['access']; } @@ -377,7 +377,7 @@ public function invalidateAccessCacheForUser(?IUser $user): void { $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('user_id', $query->createNamedParameter($userId))); - $query->execute(); + $query->executeStatement(); } public function invalidateAccessCacheForResource(IResource $resource): void { @@ -386,7 +386,7 @@ public function invalidateAccessCacheForResource(IResource $resource): void { $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('resource_id', $query->createNamedParameter($resource->getId()))) ->andWhere($query->expr()->eq('resource_type', $query->createNamedParameter($resource->getType(), IQueryBuilder::PARAM_STR))); - $query->execute(); + $query->executeStatement(); foreach ($resource->getCollections() as $collection) { $this->invalidateAccessCacheForCollection($collection); @@ -398,7 +398,7 @@ public function invalidateAccessCacheForAllCollections(): void { $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->neq('collection_id', $query->createNamedParameter(0))); - $query->execute(); + $query->executeStatement(); } public function invalidateAccessCacheForCollection(ICollection $collection): void { @@ -406,7 +406,7 @@ public function invalidateAccessCacheForCollection(ICollection $collection): voi $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('collection_id', $query->createNamedParameter($collection->getId()))); - $query->execute(); + $query->executeStatement(); } public function invalidateAccessCacheForProvider(IProvider $provider): void { @@ -414,7 +414,7 @@ public function invalidateAccessCacheForProvider(IProvider $provider): void { $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('resource_type', $query->createNamedParameter($provider->getType(), IQueryBuilder::PARAM_STR))); - $query->execute(); + $query->executeStatement(); } public function invalidateAccessCacheForResourceByUser(IResource $resource, ?IUser $user): void { @@ -424,7 +424,7 @@ public function invalidateAccessCacheForResourceByUser(IResource $resource, ?IUs $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('resource_id', $query->createNamedParameter($resource->getId()))) ->andWhere($query->expr()->eq('user_id', $query->createNamedParameter($userId))); - $query->execute(); + $query->executeStatement(); foreach ($resource->getCollections() as $collection) { $this->invalidateAccessCacheForCollectionByUser($collection, $user); @@ -438,7 +438,7 @@ protected function invalidateAccessCacheForCollectionByUser(ICollection $collect $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('collection_id', $query->createNamedParameter($collection->getId()))) ->andWhere($query->expr()->eq('user_id', $query->createNamedParameter($userId))); - $query->execute(); + $query->executeStatement(); } public function invalidateAccessCacheForProviderByUser(IProvider $provider, ?IUser $user): void { @@ -448,7 +448,7 @@ public function invalidateAccessCacheForProviderByUser(IProvider $provider, ?IUs $query->delete(self::TABLE_ACCESS_CACHE) ->where($query->expr()->eq('resource_type', $query->createNamedParameter($provider->getType(), IQueryBuilder::PARAM_STR))) ->andWhere($query->expr()->eq('user_id', $query->createNamedParameter($userId))); - $query->execute(); + $query->executeStatement(); } public function registerResourceProvider(string $provider): void { diff --git a/lib/private/Collaboration/Resources/Resource.php b/lib/private/Collaboration/Resources/Resource.php index 19da3da7e7d27..05eaeb8f6aa7c 100644 --- a/lib/private/Collaboration/Resources/Resource.php +++ b/lib/private/Collaboration/Resources/Resource.php @@ -102,7 +102,7 @@ public function getCollections(): array { ->where($query->expr()->eq('resource_type', $query->createNamedParameter($this->getType()))) ->andWhere($query->expr()->eq('resource_id', $query->createNamedParameter($this->getId()))); - $result = $query->execute(); + $result = $query->executeQuery(); while ($row = $result->fetch()) { $collections[] = $this->manager->getCollection((int)$row['collection_id']); } diff --git a/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php b/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php index 81530b567257d..3cd1c90da2424 100644 --- a/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php +++ b/lib/private/DB/QueryBuilder/Sharded/CrossShardMoveHelper.php @@ -90,7 +90,7 @@ public function loadItems(IDBConnection $connection, string $table, string $prim $results = []; foreach ($chunks as $chunk) { $query->setParameter('keys', $chunk, IQueryBuilder::PARAM_INT_ARRAY); - $results = array_merge($results, $query->execute()->fetchAll()); + $results = array_merge($results, $query->executeQuery()->fetchAll()); } return $results; diff --git a/lib/private/Repair/Collation.php b/lib/private/Repair/Collation.php index 5a309892bf097..c3dbb4eef6241 100644 --- a/lib/private/Repair/Collation.php +++ b/lib/private/Repair/Collation.php @@ -15,13 +15,6 @@ use Psr\Log\LoggerInterface; class Collation implements IRepairStep { - /** @var IConfig */ - protected $config; - - protected LoggerInterface $logger; - - /** @var IDBConnection */ - protected $connection; /** @var bool */ protected $ignoreFailures; @@ -30,14 +23,11 @@ class Collation implements IRepairStep { * @param bool $ignoreFailures */ public function __construct( - IConfig $config, - LoggerInterface $logger, - IDBConnection $connection, + protected IConfig $config, + protected LoggerInterface $logger, + protected IDBConnection $connection, $ignoreFailures, ) { - $this->connection = $connection; - $this->config = $config; - $this->logger = $logger; $this->ignoreFailures = $ignoreFailures; } diff --git a/lib/private/Repair/RepairMimeTypes.php b/lib/private/Repair/RepairMimeTypes.php index 715f7623440d7..fca7a127e9875 100644 --- a/lib/private/Repair/RepairMimeTypes.php +++ b/lib/private/Repair/RepairMimeTypes.php @@ -53,7 +53,7 @@ private function updateMimetypes($updatedMimetypes): IResult|int|null { if (empty($this->folderMimeTypeId)) { $query->setParameter('mimetype', 'httpd/unix-directory'); - $result = $query->execute(); + $result = $query->executeQuery(); $this->folderMimeTypeId = (int)$result->fetchOne(); $result->closeCursor(); } @@ -71,21 +71,21 @@ private function updateMimetypes($updatedMimetypes): IResult|int|null { foreach ($updatedMimetypes as $extension => $mimetype) { // get target mimetype id $query->setParameter('mimetype', $mimetype); - $result = $query->execute(); + $result = $query->executeQuery(); $mimetypeId = (int)$result->fetchOne(); $result->closeCursor(); if (!$mimetypeId) { // insert mimetype $insert->setParameter('mimetype', $mimetype); - $insert->execute(); + $insert->executeStatement(); $mimetypeId = $insert->getLastInsertId(); } // change mimetype for files with x extension $update->setParameter('mimetype', $mimetypeId) ->setParameter('name', '%' . $this->connection->escapeLikeParameter('.' . $extension)); - $count += $update->execute(); + $count += $update->executeStatement(); } return $count; diff --git a/lib/private/TagManager.php b/lib/private/TagManager.php index f99653f2c052f..21b6ef4577be9 100644 --- a/lib/private/TagManager.php +++ b/lib/private/TagManager.php @@ -23,16 +23,13 @@ * @template-implements IEventListener */ class TagManager implements ITagManager, IEventListener { - private TagMapper $mapper; - private IUserSession $userSession; - private IDBConnection $connection; - private LoggerInterface $logger; - public function __construct(TagMapper $mapper, IUserSession $userSession, IDBConnection $connection, LoggerInterface $logger) { - $this->mapper = $mapper; - $this->userSession = $userSession; - $this->connection = $connection; - $this->logger = $logger; + public function __construct( + private TagMapper $mapper, + private IUserSession $userSession, + private IDBConnection $connection, + private LoggerInterface $logger, + ) { } /** @@ -76,7 +73,7 @@ public function getUsersFavoritingObject(string $objectType, int $objectId): arr ->andWhere($query->expr()->eq('c.type', $query->createNamedParameter($objectType))) ->andWhere($query->expr()->eq('c.category', $query->createNamedParameter(ITags::TAG_FAVORITE))); - $result = $query->execute(); + $result = $query->executeQuery(); $users = $result->fetchAll(\PDO::FETCH_COLUMN); $result->closeCursor(); From cf62a82e6592e756ec6306dccd4da8dec4217ae1 Mon Sep 17 00:00:00 2001 From: Git'Fellow <12234510+solracsf@users.noreply.github.com> Date: Fri, 18 Oct 2024 16:09:21 +0200 Subject: [PATCH 2/2] fix: conflict --- .../Migration/RefreshWebcalJobRegistrar.php | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php b/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php index 235a3a78395b2..3d6426e4460be 100644 --- a/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php +++ b/apps/dav/lib/Migration/RefreshWebcalJobRegistrar.php @@ -16,10 +16,21 @@ class RefreshWebcalJobRegistrar implements IRepairStep { - public function __construct( - private IDBConnection $connection, - private IJobList $jobList, - ) { + /** @var IDBConnection */ + private $connection; + + /** @var IJobList */ + private $jobList; + + /** + * FixBirthdayCalendarComponent constructor. + * + * @param IDBConnection $connection + * @param IJobList $jobList + */ + public function __construct(IDBConnection $connection, IJobList $jobList) { + $this->connection = $connection; + $this->jobList = $jobList; } /**