mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Refactor query processing to handle subquery attributes more efficiently
Co-authored-by: jakeb994 <jakeb994@gmail.com>
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user