MagicStack / MagicStack/asyncpg
passing a list\set as an argument failing
オープン
まだ誰も着手していません。
- 主要言語
- Python
- スター
- 8.1k
- フォーク
- 468
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
- 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
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
この issue の再現例から始め、issue #94 と比較し、PostgreSQL の行値 IN 式で使用されるパラメーターを asyncpg がどのように扱うかに焦点を当てます。記載されている Python、PostgreSQL、Windows の環境で、成功するクエリと失敗するクエリを再現します。サポートされる動作と必要な引数形式が確立または文書化されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- postgresql, python
- 領域
- database
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100