MagicStack / MagicStack/asyncpg

passing a list\set as an argument failing

Aperta
#511 5 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
8.1k
Fork
468
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

  • 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

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia con gli esempi di riproduzione presenti in questo issue e confrontali con l’issue #94, concentrandoti su come asyncpg gestisce un parametro usato in un’espressione IN di PostgreSQL con valori di riga. Riproduci le query funzionanti e quelle che falliscono nella configurazione Python, PostgreSQL e Windows indicata; il lavoro è completo quando il comportamento supportato e la forma dell’argomento richiesta sono stabiliti o documentati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
postgresql, python
Ambito
database
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.