Actions
Anomalie #6987
fermé[SearchDoc] setSlice et onlyCount ne semblent pas compatibles
Début:
18/05/2017
Echéance:
% réalisé:
100%
Temps estimé:
Version source:
Solution proposée:
Prendre en compte le slice et start dans le onlyCount
Principaux fichiers impactés:
Complexité:
Contrôle:
Thème:
Socle technique
Régression:
Non
Description
$searchDoc->setSlice(1);
$hasOpen= $searchDoc->onlyCount() === 1;
échoue quand j'ai plus de 1 document car il retourne le nombre total sans prendre en compte le slice
Actions
#3
Mis à jour par Éric Brison il y a plus de 8 ans
- Assigné à mis à Jérôme Augé
- Solution proposée mis à jour (diff)
Actions
#4
Mis à jour par Jérôme Augé il y a plus de 8 ans
setStart() et setSlice() ne sont effectivement pas pris en compte car le compte est effectué en SQL avec une fonction d'agrégat COUNT, et dans ce cas les directives OFFSET/LIMIT sont appliqués sur le set résultant qui est composé d'un seul tuple avec le résultat du COUNT :
test=> SELECT count(id) FROM doc WHERE title ~ 'foo';
count
-------
10
(1 ligne)
test=> SELECT count(id) FROM doc WHERE title ~ 'foo' OFFSET 0 LIMIT 1;
count
-------
10
(1 ligne)
test=> SELECT count(id) FROM doc WHERE title ~ 'foo' OFFSET 1 LIMIT 1;
count
-------
(0 ligne)
Donc, faire un OFFSET/LIMIT n'a pas vraiment de sens avec une fonction d'agrégat COUNT.
Actions
#7
Mis à jour par Éric Brison il y a plus de 8 ans
- Statut changé de Nouveau à Intégré
Appliqué par commit internal-platfrom:commit:397a44a54b5168aa0fecf0361b0495459a355d89.
Actions