MagicStack / MagicStack/asyncpg

cursor prefetch with bounded lag

Ouverte
#1,149 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Python
Étoiles
8.1k
Forks
468
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

EDIT: nvm, looks like there's really no mechanism in the pgwire protocol that would support this behavior.

Would it at all be possible to support prefetching a batch of up to N rows via a cursor, as compared to waiting for exactly N rows to be available?

In other words, I would like to have a max_lag parameter similar to timeout, but with different semantics. If after max_lag at least 1 row, yet less than prefetch rows are available, do return the available rows.

Current api is:

cursor(query, *args, prefetch=None, timeout=None, record_class=None)

I would like it to be augmented as:

cursor(query, *args, prefetch=None, max_lag=None, timeout=None, record_class=None)

Is there any intrinsic limitation that would make this not worth the effort or simply there has been no interest for anything like that?

Thank you!

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par vérifier la limitation de pgwire indiquée dans l’issue et par examiner l’API de curseur existante décrite dans le rapport. Aucun fichier ni test n’est nommé, et le comportement demandé pourrait ne pas être implémentable ; sa réalisation nécessiterait une conception confirmée et prise en charge par le protocole, ainsi qu’un périmètre de projet correspondant.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
postgresql, python
Domaine
backend-api-design, databases
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
15/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.