[概要]
・勧告ID: DP-445340
・影響を受ける製品とバージョン:
製品:
InterSystems IRIS data platform
InterSystems IRIS for Health
HealthShare Health Connect
バージョン:
2025.1.0 - 2025.1.2, 2025.2.0
・リスクカテゴリー & スコア:
誤動作 低リスク
・発生条件:
SQL クエリで OFFSET キーワードを使用する
[発生する問題]
対象製品のバージョン 2025.1.0 から 2025.1.2 および 2025.2.0 において、SQLクエリでページングのための新しい OFFSET キーワードを使用した際にクエリが並列実行された場合、間違った結果が返される問題が発生する可能性があります。
OFFSET を使用しない LIMIT または FETCH (または従来からの TOP 句) を使用したクエリではこの問題は発生しません。
次のクエリが本問題の影響を受けるものです。
SELECT * FROM LargeTable OFFSET 50 FETCH 10
SELECT * FROM LargeTable LIMIT 10 OFFSET 50
次のクエリは明示的に並列実行を行わないようにしているために本問題は発生しません。
SELECT * FROM %NOPARALLEL LargeTable OFFSET 50 FETCH 10
SELECT * FROM %NOPARALLEL LargeTable LIMIT 10 OFFSET 50
次のクエリは OFFSET キーワードを使用していないため本問題は発生しません。
SELECT * FROM LargeTable LIMIT 10
SELECT * FROM LargeTable FETCH 10
SELECT TOP 10 * FROM LargeTable
[影響]
この問題により、InterSystems SQL が明示的なエラーを発生せずに誤った結果を返す可能性があります。誤った結果とは、返されるべき行の欠落、ページング基準に一致しない余分な行が含まれる、このいずれかまたは両方のことを指します。
[解決策]
この問題の修正はバージョン 2025.1.3 および 2025.3.0 とそれ以降のバージョンに含まれる予定です。
・2025.1.3 は 2026年1月28日にリリースを予定しています
・2025.3.0 は 2025年11月19日にリリースを予定しています
対象バージョンでは、問題のクエリを以下のいずれかの方法で修正することで本問題を回避できます。
・OFFSET # の代わりに結果の先頭 # 行を手動でスキップする
・クエリが並列実行されないように %NOPARALLEL ヒントを使用する
お客様のご要望により、本修正 DP-445425 を現在お使いの製品に対する Adhoc として個別に作成し、提供することが可能です。お使いのシステムに対する Adhoc が必要な場合は、カスタマーサポートセンターまでお知らせ下さい。
この勧告についてご質問がある場合は、カスタマーサポートセンターにご連絡下さい。