aboutsummaryrefslogtreecommitdiffstats
path: root/apps/sharebymail/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/sharebymail/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/sharebymail/lib')
-rw-r--r--apps/sharebymail/lib/ShareByMailProvider.php10
1 files changed, 2 insertions, 8 deletions
diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php
index 7d0665ca630..e6e1cf509e9 100644
--- a/apps/sharebymail/lib/ShareByMailProvider.php
+++ b/apps/sharebymail/lib/ShareByMailProvider.php
@@ -1115,10 +1115,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
$qb = $this->dbConnection->getQueryBuilder();
$qb->select('*')
->from('share', 's')
- ->andWhere($qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
- $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
- ))
+ ->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)))
->andWhere(
$qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL))
);
@@ -1167,10 +1164,7 @@ class ShareByMailProvider extends DefaultShareProvider implements IShareProvider
->from('share')
->where($qb->expr()->eq('share_type', $qb->createNamedParameter(IShare::TYPE_EMAIL)))
->andWhere($qb->expr()->in('file_source', $qb->createNamedParameter($ids, IQueryBuilder::PARAM_INT_ARRAY)))
- ->andWhere($qb->expr()->orX(
- $qb->expr()->eq('item_type', $qb->createNamedParameter('file')),
- $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
- ));
+ ->andWhere($qb->expr()->in('item_type', $qb->createNamedParameter(['file', 'folder'], IQueryBuilder::PARAM_STR_ARRAY)));
$cursor = $qb->executeQuery();
$public = false;