Skip to content

Fonctionnement de la fonction set_limit() de GenericQuery #55

Description

@jbrieuclp

Salut,
Je m'arrache les cheveux depuis un moment à comprendre ce qui ne fonctionnait pas sur le requêtage des données depuis l'API du module Export où lorsque je voulais accéder aux données via une route de l'API je fixais ma limite (1000 au max) et mon offset.
A chaque itération je multipliais mon offset dans l'URL comme je l'aurais fait en SQL :

  • requête 1 : LIMIT 1000 - OFFSET 0
  • requête 2 : LIMIT 1000 - OFFSET 1000
  • requête 3 : LIMIT 1000 - OFFSET 2000
  • ...

J'obtenais des retours incompréhensibles.
Jusqu'à ce que j'aille voir dans le code pour comprendre la raison et tomber sur cette fonction ;

def set_limit(self, q):
return q.limit(self.limit).offset(self.offset * self.limit)

Ainsi offset n'est pas à considérer comme la valeur de OFFSET qui sera réellement envoyée à la requête, mais comme une pagination.
Plutôt trompeur comme fonctionnement.. En tout cas, je suis clairement tombé dans le panneau !
De fait pourquoi cette multiplication par le LIMIT et, ma foi, pourquoi pas, mais dans ce cas est-ce que "OFFSET" est le bon nom de paramètre ?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions