Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Add support for PGOPTIONS environment variable

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
52/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
postgresql, python
Área
databases

Línea de trabajo

Comienza en asyncpg/connect_utils.py, donde se leen las variables de entorno PG existentes, y compara el comportamiento solicitado con la documentación de PostgreSQL sobre las variables de entorno de libpq. Ejecuta la reproducción proporcionada test_asyncpg_timeout.py con PGOPTIONS establecido; se considera terminado cuando los valores de PGOPTIONS se interpretan como configuraciones del servidor y el ejemplo de statement_timeout se comporta como psql.

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

Descripción

asyncpg supports an explicit server_options=... dict connection method parameter, but does not seem to populate its value from the PGOPTIONS environment variable. This is a feature request for it to do so.

Specifically, asyncpg/connect_utils.py reads user, host, port, database, password, and SSL information with calls like os.getenv('PGUSER'), os.environ.get('PGHOST'), etc. There is no corresponding call for reading PGOPTIONS.

I would like to set the environment variable PGOPTIONS='-c default_transaction_read_only=on -c statement_timeout=120s' and have asyncpg interpret its values as server_settings the way libpq does. For instance, the below works for psql:

PGOPTIONS='-c statement_timeout=1s' psql -c "SELECT pg_sleep(2)"
ERROR:  canceling statement due to statement timeout

but a simple asyncpg script running the same ignores the statement_timeout since it never reads the value of PGOPTIONS.

$ PGOPTIONS='-c statement_timeout=1s' ./test_asyncpg_timeout.py 
SELECT 1

https://www.postgresql.org/docs/current/libpq-envars.html

Lenguaje dominante
Python
Estrellas
8.1k
Forks
469
Merge medio
2 d 20 h
PR fusionados (30 d)
9

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.

Más de MagicStack/asyncpg

Todos los issues de MagicStack/asyncpg

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.