mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-05-06 19:19:19 +02:00
perf: replace fat-view student index query with lean getPublishedAuthors()
The répertoire page was loading the full v_theses_public view (15 JOINs + 8 GROUP_CONCAT temp B-trees) via getAllPublishedTheses() just to build the student name → thesis-id map on the index page. Only two columns (id, authors) were ever consumed by the template. Add Database::getPublishedAuthors(): array - Queries thesis_authors JOIN authors directly on the theses base table - Filters on theses.is_published = 1 using the existing index - Returns only id + GROUP_CONCAT(authors) — no view expansion - Results verified identical to the old getAllPublishedTheses() output Update search.php to call getPublishedAuthors() instead. Mark getAllPublishedTheses() @deprecated in Database.php. All tests pass.
This commit is contained in:
@@ -46,8 +46,8 @@ try {
|
||||
$orientations = $db->getAllOrientations();
|
||||
$apPrograms = $db->getAllAPPrograms();
|
||||
$keywords = $db->getUsedTags();
|
||||
// Fetch all published theses for the student index (no artificial cap)
|
||||
$students = $db->getAllPublishedTheses();
|
||||
// Fetch id+authors only — lean query bypassing the fat v_theses_public view
|
||||
$students = $db->getPublishedAuthors();
|
||||
} catch (InvalidArgumentException $e) {
|
||||
$validationError = $e->getMessage();
|
||||
$results = []; $totalItems = 0; $totalPages = 0;
|
||||
|
||||
Reference in New Issue
Block a user