aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib
diff options
context:
space:
mode:
authorMarcel Klehr <mklehr@gmx.net>2025-03-24 15:39:29 +0100
committerMarcel Klehr <mklehr@gmx.net>2025-03-25 09:42:06 +0100
commitb464469bc1a93ff4c0034d5a180361826c178cfc (patch)
treecd4ab7450f3232f844e47d6ccf9f3f3531b9ee5a /apps/files_sharing/lib
parent7a05c0059318f5d799ea6c21fb85a5155cddbdec (diff)
downloadnextcloud-server-refactor/use-in-instead-of-or.tar.gz
nextcloud-server-refactor/use-in-instead-of-or.zip
perf(sharing): Use oc_share.{item_type, share_type} IN instead of OR equalsrefactor/use-in-instead-of-or
to improve performance by using the db index Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Diffstat (limited to 'apps/files_sharing/lib')
-rw-r--r--apps/files_sharing/lib/ExpireSharesJob.php11
-rw-r--r--apps/files_sharing/lib/OrphanHelper.php3
2 files changed, 4 insertions, 10 deletions
diff --git a/apps/files_sharing/lib/ExpireSharesJob.php b/apps/files_sharing/lib/ExpireSharesJob.php
index 8ea6fee8a5c..d78352cfeaa 100644
--- a/apps/files_sharing/lib/ExpireSharesJob.php
+++ b/apps/files_sharing/lib/ExpireSharesJob.php
@@ -8,6 +8,7 @@ namespace OCA\Files_Sharing;
use OCP\AppFramework\Utility\ITimeFactory;
use OCP\BackgroundJob\TimedJob;
+use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
@@ -49,15 +50,9 @@ class ExpireSharesJob extends TimedJob {
->from('share')
->where(
$qb->expr()->andX(
- $qb->expr()->orX(
- $qb->expr()->eq('share_type', $qb->expr()->literal(IShare::TYPE_LINK)),
- $qb->expr()->eq('share_type', $qb->expr()->literal(IShare::TYPE_EMAIL))
- ),
+ $qb->expr()->in('share_type', $qb->createNamedParameter([IShare::TYPE_LINK, IShare::TYPE_EMAIL], IQueryBuilder::PARAM_INT_ARRAY)),
$qb->expr()->lte('expiration', $qb->expr()->literal($now)),
- $qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->expr()->literal('file')),
- $qb->expr()->eq('item_type', $qb->expr()->literal('folder'))
- )
+ $qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY))
)
);
diff --git a/apps/files_sharing/lib/OrphanHelper.php b/apps/files_sharing/lib/OrphanHelper.php
index 4a52af0406c..6e070f1446b 100644
--- a/apps/files_sharing/lib/OrphanHelper.php
+++ b/apps/files_sharing/lib/OrphanHelper.php
@@ -58,8 +58,7 @@ class OrphanHelper {
$query = $this->connection->getQueryBuilder();
$query->select('id', 'file_source', 'uid_owner', 'file_target')
->from('share')
- ->where($query->expr()->eq('item_type', $query->createNamedParameter('file')))
- ->orWhere($query->expr()->eq('item_type', $query->createNamedParameter('folder')));
+ ->where($query->expr()->in('item_type', $query->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
$result = $query->executeQuery();
while ($row = $result->fetch()) {
yield [