MagicStack / MagicStack/asyncpg
column reference X is ambiguous
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
Hello everyone 👋
Migrating from psycopg2 to asyncpg, I'm facing an issue with an executemany.
Here is my example:
Table structure:
CREATE TABLE table_name
(
column1 text PRIMARY KEY,
...
column8 JSON,
column9 numeric,
column10 numeric,
...
);
SQL request:
sql = """
UPDATE table_name
SET column8 = data.column8, column9 = data.column9, column10 = data.column10
FROM unnest ($1::table_name[]) AS data(column1, column8, column9, column10)
WHERE table_name.column1 = data.column1"""
args = [("id_1", "json_string_1", None, None), ("id_2", "json_string_2", decimal("5"), decimal("8")), ...]
loop.run_until_complete(conn.executemany(sql, args))
The result of this request is column reference "column8" is ambiguous
I don't know if it's related (and I know this library isn't the same as psycopg2) but before I had to pass a template for this request (like so: template = "(%s, %s::json, %s::numeric, %s::numeric)")
- asyncpg version: v0.23.0
- PostgreSQL version: 13.3
- Do you use a PostgreSQL SaaS? No
- Python version: 3.8.9 (Pyenv)
- Platform: Debian buster (Docker)
- Do you use pgbouncer?: No
- Did you install asyncpg with pip?: Yes
- If you built asyncpg locally, which version of Cython did you use?: No
- Can the issue be reproduced under both asyncio and
uvloop?: 🤷♂️
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo l'esempio fornito di PostgreSQL UPDATE e asyncpg executemany con le versioni e gli argomenti indicati. Confronta l'errore del database con il comportamento documentato di asyncpg per executemany per determinare se è richiesta una modifica alla libreria; il lavoro è completato quando viene identificato un difetto confermato di asyncpg oppure viene chiarito che l'SQL deve essere modificato dall'utente.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- postgresql, python
- Ambito
- databases
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 20/100