Add support for TIMESTAMP WITH TIME ZONE storing offset from UTC (not named TZ)
まだ誰も着手していません。
評価
調査の方向性
src/oracledb/impl/base/buffer.pyx の、示されているタイムゾーンオフセット処理付近にある Buffer の timestamp 解析ロジックから始めてください。TIMESTAMP WITH TIME ZONE の値がどのように変換されるかを確認し、次に、オフセットのみの値が、naive な datetime や名前付きタイムゾーンではなく、格納された UTC オフセットを持つ timezone-aware な datetime を生成することを確認してください。
索引モデルが issue の本文から書いたものです。
説明
Currently naive datetime(s) are returned when column type is TIMESTAMP WITH TIME ZONE.
Issue #274 can be split into two tasks, one is supporting named time zones as per issue #20. The other task is supporting timestamps having only the offset from UTC.
I have no knowledge of Cython so I cannot create a PR but what I would try is:
--- a/src/oracledb/impl/base/buffer.pyx
+++ b/src/oracledb/impl/base/buffer.pyx
@@ -354,7 +354,10 @@ cdef class Buffer:
tz_minute = ptr[12] - TZ_MINUTE_OFFSET
if tz_hour != 0 or tz_minute != 0:
seconds = tz_hour * 3600 + tz_minute * 60
- value += cydatetime.timedelta_new(0, seconds, 0)
+ tz_delta = cydatetime.timedelta_new(0, seconds, 0)
+ tz_utc = cydatetime.get_utc()
+ tz = cydatetime.timezone_new(tz_delta)
+ return value.replace(tzinfo=tz_utc).astimezone(tz)
return value
cdef object parse_interval_ds(self, const uint8_t* ptr):
- 主要言語
- Python
- スター
- 455
- フォーク
- 119
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
oracle/python-oracledb のほかの issue
-
Client Library or Database
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
oracle/python-oracledb#620 · コメント 2 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 42/100
oracle/python-oracledb#619 ·
-
asyncio: DPY-4011 on connect_async() when the listener closes the original socket after a redirect対応中かも @AlexGracas が 8 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 35/100
oracle/python-oracledb#616 ·
-
bug
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
oracle/python-oracledb#615 ·
-
Fetch character columns as raw bytes in the database character set into data frames (Thick mode)オープンenhancement
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
oracle/python-oracledb#614 · コメント 1 件 ·
oracle/python-oracledb の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
aws-samples/sample-per-model-bedrock#243 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
FuRongJun-1999/dsh-memory#404 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
bug frontend
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
PennyLaneAI/catalyst#3337 ·
メンテナーはふだん 1 日以内に返信
-
Workflow.schedule stops when a cron deadline passes before sleep対応中かも @HuaTNA が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信