Refactor query processing to handle subquery attributes more efficiently

Co-authored-by: jakeb994 <jakeb994@gmail.com>
This commit is contained in:
Cursor Agent
2025-08-12 12:37:34 +00:00
co-authored by jakeb994
parent 28ba9e3404
commit 02114785d0
+6 -6
View File
@@ -661,28 +661,28 @@ App::get('/v1/users')
$requestedSubQueryAttributes = [];
$processedQueries = [];
$allSelectedAttributes = [];
foreach ($queries as $query) {
if ($query->getMethod() === Query::TYPE_SELECT) {
$selectedAttributes = $query->getValues();
$filteredAttributes = [];
foreach ($selectedAttributes as $attribute) {
if (array_key_exists($attribute, $subQueryAttributes)) {
$requestedSubQueryAttributes[] = $subQueryAttributes[$attribute];
} else {
$filteredAttributes[] = $attribute;
$allSelectedAttributes[] = $attribute;
}
}
if (!empty($filteredAttributes)) {
$processedQueries[] = Query::select($filteredAttributes);
}
} else {
$processedQueries[] = $query;
}
}
if (!empty($allSelectedAttributes)) {
$processedQueries[] = Query::select(array_unique($allSelectedAttributes));
}
$queries = $processedQueries;
$skipFilters = array_diff($skipFilters, $requestedSubQueryAttributes);