Database timezone ignored for timestamptz
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 38/100
調査の方向性
まず、Linux 上で asyncpg 0.27.0 と Python 3.10.9 を使って、報告された PostgreSQL 15.1 の timestamptz の挙動を再現し、psql の出力と返された datetime を比較します。timestamp のデコード経路を追跡し、timestamptz の値を対象とする既存のテストを特定します。完了条件は、返された datetime が期待されるデータベースローカルのタイムゾーンの挙動を保持し、回帰がテストでカバーされていることです。
索引モデルが issue の本文から書いたものです。
説明
- asyncpg version: 0.27.0
- PostgreSQL version: 15.1
- Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?: local - Python version: 3.10.9
- Platform: Linux
- Do you use pgbouncer?: no
- Did you install asyncpg with pip?: no
- If you built asyncpg locally, which version of Cython did you use?: 0.29.33
- Can the issue be reproduced under both asyncio and
uvloop?: not tested, since unlikely
I would expect the datetime.datetime object has the same timezone as psql or python determines (CET).
Instead, asyncpg sets the timezone to UTC.
psql shell, displays UTC+1 = CET properly:
=> select now()::timestamptz;
2023-02-19 01:53:28.453411+01
python-shell:
>>> loop = asyncio.new_event_loop()
>>> c = loop.run_until_complete(asyncpg.connect(database='lol'))
>>> loop.run_until_complete(c.fetch("select now()::timestamptz"))
[<Record now=datetime.datetime(2023, 2, 19, 0, 54, 39, 597496, tzinfo=datetime.timezone.utc)>]
# ^ here, i'd expect it to be with tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'CET')
# because python does the same thing when having timezoned timestamps:
>>> datetime.datetime.now().astimezone()
datetime.datetime(2023, 2, 19, 1, 57, 12, 260030, tzinfo=datetime.timezone(datetime.timedelta(seconds=3600), 'CET'))
- 主要言語
- Python
- スター
- 8.1k
- フォーク
- 469
- 平均マージ
- 18分
- マージ済み PR(30日)
- 4
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
MagicStack/asyncpg のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
MagicStack/asyncpg#1357 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
MagicStack/asyncpg#1328 ·
-
tests fail in 2032 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
MagicStack/asyncpg#997 ·
-
Connection.close(timeout=) waits forever on a pending cancel when the server never acknowledges it オープン
難易度 4/5 3〜5日 初心者へのやさしさ 68/100
MagicStack/asyncpg#1356 ·
-
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
MagicStack/asyncpg#1355 · リアクション 3 件 ·
MagicStack/asyncpg の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
bancolombia/sentinel#23 ·
-
test md オープンCI
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
-
integration:quickjs org:external priority:backlog topic:code-interpreter topic:middleware type:feature
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
langchain-ai/deepagents#6450 ·
-
bug client
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100