Skip to content

Commit bb352fb

Browse files
committed
Use the defined func()->count() instead of manual counting
Signed-off-by: Joas Schilling <coding@schilljs.com>
1 parent 78fd8ab commit bb352fb

20 files changed

Lines changed: 32 additions & 33 deletions

File tree

apps/dav/lib/CalDAV/CalDavBackend.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ public function __construct(IDBConnection $db,
213213
public function getCalendarsForUserCount($principalUri, $excludeBirthday = true) {
214214
$principalUri = $this->convertPrincipal($principalUri, true);
215215
$query = $this->db->getQueryBuilder();
216-
$query->select($query->createFunction('COUNT(*)'))
216+
$query->select($query->func()->count('*'))
217217
->from('calendars')
218218
->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri)));
219219

@@ -1045,7 +1045,7 @@ function createCalendarObject($calendarId, $objectUri, $calendarData, $calendarT
10451045
$extraData = $this->getDenormalizedData($calendarData);
10461046

10471047
$q = $this->db->getQueryBuilder();
1048-
$q->select($q->createFunction('COUNT(*)'))
1048+
$q->select($q->func()->count('*'))
10491049
->from('calendarobjects')
10501050
->where($q->expr()->eq('calendarid', $q->createNamedParameter($calendarId)))
10511051
->andWhere($q->expr()->eq('uid', $q->createNamedParameter($extraData['uid'])))

apps/dav/lib/CardDAV/CardDavBackend.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public function __construct(IDBConnection $db,
117117
public function getAddressBooksForUserCount($principalUri) {
118118
$principalUri = $this->convertPrincipal($principalUri, true);
119119
$query = $this->db->getQueryBuilder();
120-
$query->select($query->createFunction('COUNT(*)'))
120+
$query->select($query->func()->count('*'))
121121
->from('addressbooks')
122122
->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri)));
123123

apps/files_sharing/lib/Command/CleanupRemoteStorages.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public function execute(InputInterface $input, OutputInterface $output) {
9898

9999
public function countFiles($numericId, OutputInterface $output) {
100100
$queryBuilder = $this->connection->getQueryBuilder();
101-
$queryBuilder->select($queryBuilder->createFunction('COUNT(' . $queryBuilder->getColumnName('fileid') . ')'))
101+
$queryBuilder->select($queryBuilder->func()->count('fileid'))
102102
->from('filecache')
103103
->where($queryBuilder->expr()->eq(
104104
'storage',

apps/user_ldap/lib/Mapping/AbstractMapping.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ public function clearCb(Callable $preCallback, Callable $postCallback): bool {
311311
*/
312312
public function count() {
313313
$qb = $this->dbc->getQueryBuilder();
314-
$query = $qb->select($qb->createFunction('COUNT(' . $qb->getColumnName('ldap_dn') . ')'))
314+
$query = $qb->select($qb->func()->count('ldap_dn'))
315315
->from($this->getTableName());
316316
$res = $query->execute();
317317
$count = $res->fetchColumn();

core/Command/Db/ConvertType.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ protected function copyTable(Connection $fromDB, Connection $toDB, Table $table,
301301

302302
$query = $fromDB->getQueryBuilder();
303303
$query->automaticTablePrefix(false);
304-
$query->selectAlias($query->createFunction('COUNT(*)'), 'num_entries')
304+
$query->select($query->func()->count('*', 'num_entries'))
305305
->from($table->getName());
306306
$result = $query->execute();
307307
$count = $result->fetchColumn();

lib/base.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ private static function printUpgradePage(\OC\SystemConfig $systemConfig) {
312312
if ($apps->isInstalled('user_ldap')) {
313313
$qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
314314

315-
$result = $qb->selectAlias($qb->createFunction('COUNT(*)'), 'user_count')
315+
$result = $qb->select($qb->func()->count('*', 'user_count'))
316316
->from('ldap_user_mapping')
317317
->execute();
318318
$row = $result->fetch();
@@ -323,7 +323,7 @@ private static function printUpgradePage(\OC\SystemConfig $systemConfig) {
323323
if (!$tooBig && $apps->isInstalled('user_saml')) {
324324
$qb = \OC::$server->getDatabaseConnection()->getQueryBuilder();
325325

326-
$result = $qb->selectAlias($qb->createFunction('COUNT(*)'), 'user_count')
326+
$result = $qb->select($qb->func()->count('*', 'user_count'))
327327
->from('user_saml_users')
328328
->execute();
329329
$row = $result->fetch();

lib/private/Comments/Manager.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ protected function determineTopmostParentId($id) {
163163
*/
164164
protected function updateChildrenInformation($id, \DateTime $cDateTime) {
165165
$qb = $this->dbConn->getQueryBuilder();
166-
$query = $qb->select($qb->createFunction('COUNT(' . $qb->getColumnName('id') . ')'))
166+
$query = $qb->select($qb->func()->count('id'))
167167
->from('comments')
168168
->where($qb->expr()->eq('parent_id', $qb->createParameter('id')))
169169
->setParameter('id', $id);
@@ -552,7 +552,7 @@ public function search(string $search, string $objectType, string $objectId, str
552552
*/
553553
public function getNumberOfCommentsForObject($objectType, $objectId, \DateTime $notOlderThan = null, $verb = '') {
554554
$qb = $this->dbConn->getQueryBuilder();
555-
$query = $qb->select($qb->createFunction('COUNT(' . $qb->getColumnName('id') . ')'))
555+
$query = $qb->select($qb->func()->count('id'))
556556
->from('comments')
557557
->where($qb->expr()->eq('object_type', $qb->createParameter('type')))
558558
->andWhere($qb->expr()->eq('object_id', $qb->createParameter('id')))
@@ -585,10 +585,7 @@ public function getNumberOfCommentsForObject($objectType, $objectId, \DateTime $
585585
public function getNumberOfUnreadCommentsForFolder($folderId, IUser $user) {
586586
$qb = $this->dbConn->getQueryBuilder();
587587
$query = $qb->select('f.fileid')
588-
->selectAlias(
589-
$qb->createFunction('COUNT(' . $qb->getColumnName('c.id') . ')'),
590-
'num_ids'
591-
)
588+
->addSelect($qb->func()->count('c.id', 'num_ids'))
592589
->from('comments', 'c')
593590
->innerJoin('c', 'filecache', 'f', $qb->expr()->andX(
594591
$qb->expr()->eq('c.object_type', $qb->createNamedParameter('files')),

lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public function subtract($x, $y) {
7272
return new QueryFunction($this->helper->quoteColumnName($x) . ' - ' . $this->helper->quoteColumnName($y));
7373
}
7474

75-
public function count($input) {
76-
return new QueryFunction('COUNT(' . $this->helper->quoteColumnName($input) . ')');
75+
public function count($count, $alias = '') {
76+
$alias = $alias ? (' AS ' . $this->helper->quoteColumnName($alias)) : '';
77+
return new QueryFunction('COUNT(' . $this->helper->quoteColumnName($count) . ')' . $alias);
7778
}
7879
}

lib/private/Files/Cache/Propagator.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public function propagateChange($internalPath, $time, $sizeDifference = 0) {
8282
}, $parentHashes);
8383

8484
$builder->update('filecache')
85-
->set('mtime', $builder->createFunction('GREATEST(`mtime`, ' . $builder->createNamedParameter((int)$time, IQueryBuilder::PARAM_INT) . ')'))
85+
->set('mtime', $builder->createFunction('GREATEST(' . $builder->getColumnName('mtime') . ', ' . $builder->createNamedParameter((int)$time, IQueryBuilder::PARAM_INT) . ')'))
8686
->set('etag', $builder->createNamedParameter($etag, IQueryBuilder::PARAM_STR))
8787
->where($builder->expr()->eq('storage', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT)))
8888
->andWhere($builder->expr()->in('path_hash', $hashParams));
@@ -93,7 +93,7 @@ public function propagateChange($internalPath, $time, $sizeDifference = 0) {
9393
// we need to do size separably so we can ignore entries with uncalculated size
9494
$builder = $this->connection->getQueryBuilder();
9595
$builder->update('filecache')
96-
->set('size', $builder->createFunction('`size` + ' . $builder->createNamedParameter($sizeDifference)))
96+
->set('size', $builder->func()->add('size', $builder->createNamedParameter($sizeDifference)))
9797
->where($builder->expr()->eq('storage', $builder->createNamedParameter($storageId, IQueryBuilder::PARAM_INT)))
9898
->andWhere($builder->expr()->in('path_hash', $hashParams))
9999
->andWhere($builder->expr()->gt('size', $builder->expr()->literal(-1, IQueryBuilder::PARAM_INT)));
@@ -156,14 +156,14 @@ public function commitBatch() {
156156
$storageId = (int)$this->storage->getStorageCache()->getNumericId();
157157

158158
$query->update('filecache')
159-
->set('mtime', $query->createFunction('GREATEST(`mtime`, ' . $query->createParameter('time') . ')'))
159+
->set('mtime', $query->createFunction('GREATEST(' . $query->getColumnName('mtime') . ', ' . $query->createParameter('time') . ')'))
160160
->set('etag', $query->expr()->literal(uniqid()))
161161
->where($query->expr()->eq('storage', $query->expr()->literal($storageId, IQueryBuilder::PARAM_INT)))
162162
->andWhere($query->expr()->eq('path_hash', $query->createParameter('hash')));
163163

164164
$sizeQuery = $this->connection->getQueryBuilder();
165165
$sizeQuery->update('filecache')
166-
->set('size', $sizeQuery->createFunction('`size` + ' . $sizeQuery->createParameter('size')))
166+
->set('size', $sizeQuery->func()->add('size', $sizeQuery->createParameter('size')))
167167
->where($query->expr()->eq('storage', $query->expr()->literal($storageId, IQueryBuilder::PARAM_INT)))
168168
->andWhere($query->expr()->eq('path_hash', $query->createParameter('hash')))
169169
->andWhere($sizeQuery->expr()->gt('size', $sizeQuery->expr()->literal(-1, IQueryBuilder::PARAM_INT)));

lib/private/Files/Type/Loader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public function updateFilecache($ext, $mimeTypeId) {
169169
'mimetype', $update->createNamedParameter($folderMimeTypeId)
170170
))
171171
->andWhere($update->expr()->like(
172-
$update->createFunction('LOWER(' . $update->getColumnName('name') . ')'),
172+
$update->func()->lower('name'),
173173
$update->createNamedParameter('%' . $this->dbConnection->escapeLikeParameter('.' . $ext))
174174
));
175175
return $update->execute();

0 commit comments

Comments
 (0)