MagicStack / MagicStack/asyncpg

cursor prefetch with bounded lag

Abierto
#1,149 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Python
Estrellas
8.1k
Forks
468
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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!

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza verificando la limitación de pgwire indicada en el issue y revisando la API de cursor existente descrita en el informe. No se nombran archivos ni tests, y es posible que el comportamiento solicitado no sea implementable; para completarlo sería necesario contar con un diseño confirmado y compatible con el protocolo, así como con un alcance de proyecto correspondiente.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
postgresql, python
Área
backend-api-design, databases
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
15/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.