MagicStack / MagicStack/asyncpg

passing a list\set as an argument failing

Abierto
#511 5 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

  • asyncpg version:19.0
  • PostgreSQL version:12
  • Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
    the issue with a local PostgreSQL install?
    :N\A
  • Python version:3.7.5
  • Platform:Windows
  • Do you use pgbouncer?:No
  • Did you install asyncpg with pip?:Yes
  • If you built asyncpg locally, which version of Cython did you use?:N\A
  • Can the issue be reproduced under both asyncio and
    uvloop?
    :

Similar to issue #94

I am trying to set up a query using ($1) and passing an argument. I am running into an issue when trying to pass a list of sets. Is there a way to format this query like the last example?

query = [(0,0), (1,1), (2,2)]

works:    await conn.fetch('SELECT * FROM table WHERE (a, b) IN ((0,0), (1,1), (2,2))')

works:    await conn.fetch('SELECT * FROM table WHERE (a, b) IN ' + str(tuple(query)))

fails:    await conn.fetch('SELECT * FROM table WHERE (a, b) IN ($1)', '((0,0), (1,1), (2,2))')

fails:    await conn.fetch('SELECT * FROM table WHERE (a, b) IN ($1)', str(tuple(query)))

works:    await conn.fetch('INSERT INTO table (a, b, c, d) VALUES ($1, $2, $3, $4)', a, b, c, d)

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 con los ejemplos de reproducción de este issue y compáralos con el issue #94, centrándote en cómo asyncpg gestiona un parámetro utilizado en una expresión IN de PostgreSQL con valores de fila. Reproduce las consultas que funcionan y las que fallan con la configuración indicada de Python, PostgreSQL y Windows; se considera terminado cuando el comportamiento admitido y la forma de argumento requerida estén establecidos o documentados.

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

Evaluación

Stack tecnológico
postgresql, python
Área
database
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.