Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Oracle: round() to a precision past NUMBER's range fails with ORA-01426

オープン 初心者向け
#150 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
65/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
database

調査の方向性

Oracle の ROUND(n, p) がコンパイルされる、drivine/cypher/sql/sql_cypher_compiler.py の 3307 行付近から始めます。drivine4j#266 の修正と比較し、NUMBER の丸め結果が変わらなくなる精度の上限を特定します。batch-2 の移植で丸めモードが追加されたら、3 引数形式も確認します。高い精度で ORA-01426 が発生しなくなり、関連する丸めのケースが網羅されたら完了です。

索引モデルが issue の本文から書いたものです。

説明

bug

Port of liberation-data/drivine4j#266 (drivine: liberation-data/drivine#324).

round(2.5, 400) gives 2.5 on Neo4j and Postgres. On Oracle, ROUND(n, p) (drivine/cypher/sql/sql_cypher_compiler.py, around line 3307) goes past NUMBER's range, which stops near 10^126, and fails with ORA-01426: numeric overflow. drivine4j and drivine both have this. Check the three-argument form too, once the batch-2 port brings its rounding modes.

Fix as drivine4j#266 is fixed: cap the precision on Oracle at a bound past which rounding a NUMBER changes nothing.

主要言語
Python
スター
1
フォーク
0
平均マージ
1時間 16分
マージ済み PR(30日)
74

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

liberation-data/drivine-python のほかの issue

liberation-data/drivine-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。