@@ -2963,7 +2963,6 @@ protected function convertArrayToWKT(array $geometry): string
29632963 */
29642964 public function find (Document $ collection , array $ queries = [], ?int $ limit = 25 , ?int $ offset = null , array $ orderAttributes = [], array $ orderTypes = [], array $ cursor = [], string $ cursorDirection = Database::CURSOR_AFTER , string $ forPermission = Database::PERMISSION_READ ): array
29652965 {
2966- $ attributes = $ collection ->getAttribute ('attributes ' , []);
29672966 $ collection = $ collection ->getId ();
29682967 $ name = $ this ->filter ($ collection );
29692968 $ roles = $ this ->authorization ->getRoles ();
@@ -3180,7 +3179,6 @@ public function find(Document $collection, array $queries = [], ?int $limit = 25
31803179 */
31813180 public function count (Document $ collection , array $ queries = [], ?int $ max = null ): int
31823181 {
3183- $ attributes = $ collection ->getAttribute ("attributes " , []);
31843182 $ collection = $ collection ->getId ();
31853183 $ name = $ this ->filter ($ collection );
31863184 $ roles = $ this ->authorization ->getRoles ();
@@ -3196,13 +3194,9 @@ public function count(Document $collection, array $queries = [], ?int $max = nul
31963194
31973195 $ queries = array_map (fn ($ query ) => clone $ query , $ queries );
31983196
3199- // Extract vector queries (used for ORDER BY) and keep non-vector for WHERE
3200- $ vectorQueries = [];
32013197 $ otherQueries = [];
32023198 foreach ($ queries as $ query ) {
3203- if (in_array ($ query ->getMethod (), Query::VECTOR_TYPES )) {
3204- $ vectorQueries [] = $ query ;
3205- } else {
3199+ if (!in_array ($ query ->getMethod (), Query::VECTOR_TYPES )) {
32063200 $ otherQueries [] = $ query ;
32073201 }
32083202 }
@@ -3225,22 +3219,11 @@ public function count(Document $collection, array $queries = [], ?int $max = nul
32253219 ? 'WHERE ' . \implode (' AND ' , $ where )
32263220 : '' ;
32273221
3228- // Add vector distance calculations to ORDER BY (similarity-aware LIMIT)
3229- $ vectorOrders = [];
3230- foreach ($ vectorQueries as $ query ) {
3231- $ vectorOrder = $ this ->getVectorDistanceOrder ($ query , $ binds , $ alias );
3232- if ($ vectorOrder ) {
3233- $ vectorOrders [] = $ vectorOrder ;
3234- }
3235- }
3236- $ sqlOrder = !empty ($ vectorOrders ) ? 'ORDER BY ' . implode (', ' , $ vectorOrders ) : '' ;
3237-
32383222 $ sql = "
32393223 SELECT COUNT(1) as sum FROM (
32403224 SELECT 1
32413225 FROM {$ this ->getSQLTable ($ name )} AS {$ this ->quote ($ alias )}
32423226 {$ sqlWhere }
3243- {$ sqlOrder }
32443227 {$ limit }
32453228 ) table_count
32463229 " ;
@@ -3277,7 +3260,6 @@ public function count(Document $collection, array $queries = [], ?int $max = nul
32773260 */
32783261 public function sum (Document $ collection , string $ attribute , array $ queries = [], ?int $ max = null ): int |float
32793262 {
3280- $ collectionAttributes = $ collection ->getAttribute ("attributes " , []);
32813263 $ collection = $ collection ->getId ();
32823264 $ name = $ this ->filter ($ collection );
32833265 $ attribute = $ this ->filter ($ attribute );
@@ -3294,13 +3276,9 @@ public function sum(Document $collection, string $attribute, array $queries = []
32943276
32953277 $ queries = array_map (fn ($ query ) => clone $ query , $ queries );
32963278
3297- // Extract vector queries (used for ORDER BY) and keep non-vector for WHERE
3298- $ vectorQueries = [];
32993279 $ otherQueries = [];
33003280 foreach ($ queries as $ query ) {
3301- if (in_array ($ query ->getMethod (), Query::VECTOR_TYPES )) {
3302- $ vectorQueries [] = $ query ;
3303- } else {
3281+ if (!in_array ($ query ->getMethod (), Query::VECTOR_TYPES )) {
33043282 $ otherQueries [] = $ query ;
33053283 }
33063284 }
@@ -3323,22 +3301,11 @@ public function sum(Document $collection, string $attribute, array $queries = []
33233301 ? 'WHERE ' . \implode (' AND ' , $ where )
33243302 : '' ;
33253303
3326- // Add vector distance calculations to ORDER BY (similarity-aware LIMIT)
3327- $ vectorOrders = [];
3328- foreach ($ vectorQueries as $ query ) {
3329- $ vectorOrder = $ this ->getVectorDistanceOrder ($ query , $ binds , $ alias );
3330- if ($ vectorOrder ) {
3331- $ vectorOrders [] = $ vectorOrder ;
3332- }
3333- }
3334- $ sqlOrder = !empty ($ vectorOrders ) ? 'ORDER BY ' . implode (', ' , $ vectorOrders ) : '' ;
3335-
33363304 $ sql = "
33373305 SELECT SUM( {$ this ->quote ($ attribute )}) as sum FROM (
33383306 SELECT {$ this ->quote ($ attribute )}
33393307 FROM {$ this ->getSQLTable ($ name )} AS {$ this ->quote ($ alias )}
33403308 {$ sqlWhere }
3341- {$ sqlOrder }
33423309 {$ limit }
33433310 ) table_count
33443311 " ;
0 commit comments