No Branch/Tag Specified
dev/issue_5738_idiomes_actions
issue_5732_notices
issue_3432
issue_5690
4.2
master
new_cache
4.1
new_path
cut_boostrap
admin_plugin_affiche_milieu
issue_4845_next
debug_ecrire_fichier
refactor_idiomes
issue_5095
issue_5667
move-images-to-plugin-images
dev/issue_5560_dispositions_prive
4.0
3.2
dev/issue_4626_menu_squelettes
fix_issue_5454
issue_5427_bis
coquille_doc
issue_5344
dev/hasard_fixe
issue_4836
fix_modifier_login
dev/instituer_ergo
dev_infos_image
fix/valider_url_distante
issue_4946
3.1
boutons-danger
issue_4717
dev-sortable
issue_4705
dev/autoloader
issue_4678
issue_4101
3.0
2.1
2.0
1.9.2
1.9.1
1.8
v4.2.5
v4.1.12
v4.1.11
v4.2.4
v4.2.3
v4.2.2
v4.1.9
v4.0.11
v3.2.19
v4.2.1
v4.1.8
v4.0.10
v3.2.18
v4.2.0
v4.2.0-alpha2
v4.2.0-alpha
v4.1.7
v4.1.6
v4.0.9
v3.2.17
v4.1.5
v4.1.4
v3.2.16
v4.0.8
v4.1.3
v3.2.15
v4.0.7
v4.1.2
v4.0.6
v4.1.1
v4.1.0
v4.1.0-rc
v4.0.5
v3.2.14
v4.1.0-beta
v4.1.0-alpha
v3.2.13
v4.0.4
v4.0.3
v4.0.2
v3.2.12
v4.0.1
v4.0.0
v4.0.0-beta
v4.0.0-alpha
v3.2.11
v3.2.10
v3.1.15
v3.2.9
v3.1.14
v3.1.13
v3.2.8
v4.1.10
v3.2.7
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0-beta.3
v3.2.0-beta.2
v3.2.0-beta
v3.2.0-alpha.1
v3.2.0
v3.2-alpha.1
v3.1.9
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.12
v3.1.11
v3.1.10
v3.1.1
v3.1.0-rc.3
v3.1.0-rc.2
v3.1.0-rc
v3.1.0-beta
v3.1.0-alpha
v3.1.0
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.28
v3.0.27
v3.0.26
v3.0.25
v3.0.24
v3.0.23
v3.0.22
v3.0.21
v3.0.20
v3.0.2
v3.0.19
v3.0.18
v3.0.17
v3.0.16
v3.0.15
v3.0.14
v3.0.13
v3.0.12
v3.0.11
v3.0.10
v3.0.1
v3.0.0-rc
v3.0.0-beta.2
v3.0.0-beta
v3.0.0-alpha.1
v3.0.0
v2.1.9
v2.1.8
v2.1.7
v2.1.6
v2.1.5
v2.1.4
v2.1.30
v2.1.3
v2.1.29
v2.1.28
v2.1.27
v2.1.26
v2.1.25
v2.1.24
v2.1.23
v2.1.22
v2.1.21
v2.1.20
v2.1.2
v2.1.19
v2.1.18
v2.1.17
v2.1.16
v2.1.15
v2.1.14
v2.1.13
v2.1.12
v2.1.11
v2.1.10
v2.1.1
v2.1.0
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.3
v2.0.26
v2.0.25
v2.0.24
v2.0.23
v2.0.22
v2.0.21
v2.0.20
v2.0.2
v2.0.19
v2.0.18
v2.0.17
v2.0.16
v2.0.15
v2.0.14
v2.0.13
v2.0.12
v2.0.11
v2.0.10
v2.0.1
v2.0.0
v1.9.2+p
v1.9.2+o
v1.9.2+n
v1.9.2+m
v1.9.2+k
v1.9.2+j
v1.9.2+i
v1.9.2+h
v1.9.2+g
v1.9.2+f
v1.9.1+i
v1.8.3+b
Labels
Clear labels
Amélioration, nouvelle fonctionnalité
Ca ne fonctionne pas
Ce ticket est un doublon
En cours de traitement par le bureau
Ticket invalide
Ignoré, c'est comme Ca...
Apply labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité
APIs
authentification
base de données
bug
Ca ne fonctionne pas
code généré
compilo
css
divers
documentation
doublon
Ce ticket est un doublon
En cours
En cours de traitement par le bureau
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
Ticket invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
Ignoré, c'est comme Ca...
sécurité
traduction
à confirmer
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
En cours
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
à confirmer
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Set Project
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
No dependencies set.
Reference: spip/spip#5714
Reference in New Issue
There is no content yet.
Delete Branch '%!s(<nil>)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
Le critère
{pagination 10}
utilise une requête SQL qui retourne tous les résultats sans pagination. C’est ensuite avec l’iterateur que l’on cherche le début des éléments de la liste->seek(...)
.Lorsqu’une table contient de nombreuses entrées, il semble que ça soit très pénalisant comme comportement.
Alternativement, je suppose, il faudrait pouvoir dire que
{pagination 10}
crée 2 requêtes :LIMIT {10} OFFSET {pagenumber * recordsperpage}
SELECT COUNT(*) as nb_items ...
pour que#PAGINATION
et autre#GRAND_TOTAL
connaisse le nombre total d’éléments sans pagination.Lu sur l’IRC donc:
Ex:
En tant qu’expérience de pensée, ce critère gère une une limite dans la requête SQL.
Évidemment, juste avec cela,
#PAGINATION
(en erreur car le bon critère est absent), et#GRAND_TOTAL
sont alors faux.oui c'est pas simple, je me rappelle qu'à l'époque j'avais essayé de chercher dans ce sens là sans y parvenir, et jusqu'ici on a vécu comme ça.
La piste simple serait d'avoir un LIMIT quand même pour des raisons de taille de bases, mais c'est aussi gérable en mettant un LIMIT sur la boucle
<BOUCLE(TRUC){pagination 10}{limit 0,100000}>
(astuce que j'ai utilisé sur certaines boucles paginées qui débordaient en mémoire).Alternativement gérer proprement la requête en effet, ce qui est peut-être possible en refactorant la partie iterateur pour séparer le count du requetage ?
Attention aussi, il y a la feature
debut_truc=@10
qui permet de se placer à la page qui contient leid_truc=10
qu'il faut continuer à gérer. Je ne me rappelle plus comment c'est implémenté en détail, mais il me semble que ce cas repose sur le fait qu'on ait bien la requête en entier, pour rechercher la bonne page...Tout nouveau critère apporte une nouvelle fonctionnalité et modifie le fonctionnement d'une boucle. Une boucle avec ce nouveau critère, c'est une autre boucle et il est normal (ou acceptable) que ce nouveau critère modifie le sens de la boucle et le résultat de certaines balises, voire rende certaines fonctionnalités inopérantes car inadaptées. La doc doit alors le préciser.
Alors faut il essayer d'obtenir avec ce nouveau critère ce qu'une boucle produisait avec un autre critère ? La course au "faire comme si que" produit parfois de chouettes résultats automagiques, mais c'est parfois un marathon sans fin pour corriger les cas particuliers énervants et les oublis frustrants dans les coins... et parfois sans ultime satisfaction.
en fait en y revenant je pense que la conclusion avait été "bah on peut ajouter un limit manuellement si nécessaire, donc laissons comme ça". Et de fait.