Update getPagerCount query

This commit is contained in:
DariusIII
2024-09-16 21:45:41 +02:00
parent 3a6b824534
commit ea113f2769
4 changed files with 20 additions and 28 deletions
+16 -10
View File
@@ -1075,24 +1075,30 @@ class Releases extends Release
/** /**
* Get count of releases for pager. * Get count of releases for pager.
* *
*
* @param string $query The query to get the count from. * @param string $query The query to get the count from.
*/ */
private function getPagerCount(string $query): int private function getPagerCount(string $query): int
{ {
$sql = sprintf( $queryBuilder = DB::table(DB::raw('('.preg_replace(
'SELECT COUNT(z.id) AS count FROM (%s LIMIT %s) z', '/SELECT.+?FROM\s+releases/is',
preg_replace('/SELECT.+?FROM\s+releases/is', 'SELECT r.id FROM releases', $query), 'SELECT r.id FROM releases',
(int) config('nntmux.max_pager_results') $query
); ).' LIMIT '.(int) config('nntmux.max_pager_results').') as z'))
->selectRaw('COUNT(z.id) as count');
$sql = $queryBuilder->toSql();
$count = Cache::get(md5($sql)); $count = Cache::get(md5($sql));
if ($count !== null) { if ($count !== null) {
return $count; return $count;
} }
$count = self::fromQuery($sql);
$expiresAt = now()->addMinutes(config('nntmux.cache_expiry_short'));
Cache::put(md5($sql), $count[0]->count, $expiresAt);
return $count[0]->count ?? 0; $result = $queryBuilder->first();
$count = $result->count ?? 0;
$expiresAt = now()->addMinutes(config('nntmux.cache_expiry_short'));
Cache::put(md5($sql), $count, $expiresAt);
return $count;
} }
} }
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+4 -4
View File
@@ -1,16 +1,16 @@
{ {
"resources/css/app.css": { "resources/css/app.css": {
"file": "assets/app-2M_Y6p7_.css", "file": "assets/app-CKANnDLf.css",
"src": "resources/css/app.css", "src": "resources/css/app.css",
"isEntry": true "isEntry": true
}, },
"resources/forum/livewire-tailwind/css/forum.css": { "resources/forum/livewire-tailwind/css/forum.css": {
"file": "assets/forum-7Kg14gm4.css", "file": "assets/forum-D6itczZG.css",
"src": "resources/forum/livewire-tailwind/css/forum.css", "src": "resources/forum/livewire-tailwind/css/forum.css",
"isEntry": true "isEntry": true
}, },
"resources/forum/livewire-tailwind/js/forum.js": { "resources/forum/livewire-tailwind/js/forum.js": {
"file": "assets/forum-DyY0By5q.js", "file": "assets/forum-DYii3E-X.js",
"name": "forum", "name": "forum",
"src": "resources/forum/livewire-tailwind/js/forum.js", "src": "resources/forum/livewire-tailwind/js/forum.js",
"isEntry": true, "isEntry": true,
@@ -19,7 +19,7 @@
] ]
}, },
"resources/js/app.js": { "resources/js/app.js": {
"file": "assets/app-D2jpX1vH.js", "file": "assets/app-CEsE5a7F.js",
"name": "app", "name": "app",
"src": "resources/js/app.js", "src": "resources/js/app.js",
"isEntry": true "isEntry": true