MagicStack / MagicStack/asyncpg
column reference X is ambiguous
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 8.1k
- Forks
- 468
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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?: 🤷♂️
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, das bereitgestellte PostgreSQL UPDATE- und asyncpg executemany-Beispiel mit den angegebenen Versionen und Argumenten zu reproduzieren. Vergleiche den Datenbankfehler mit dem dokumentierten Verhalten von asyncpg bei executemany, um festzustellen, ob eine Änderung an der Bibliothek angefordert wird; abgeschlossen ist die Aufgabe, wenn entweder ein bestätigter asyncpg-Fehler identifiziert wurde oder klargestellt ist, dass die SQL-Anweisung vom Benutzer geändert werden muss.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- postgresql, python
- Bereich
- databases
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 20/100