[概要]
・警告 ID: DP-442892
・影響を受ける製品とバージョン:
製品:
InterSystems IRIS
InterSystems IRIS for Health
HealthShare Health Connect
バージョン:
2020.4.0
2021.1.0 - 2021.1.4
2021.2.0
2022.1.0 - 2022.1.7
2022.2.0
2022.3.0
2023.1.0 - 2023.1.7
2023.2.0
2023.3.0
2024.1.0 - 2024.1.5
2024.2.0
2024.3.0
2025.1.0 - 2025.1.2
2025.2.0
・リスクカテゴリー & スコア:
誤作動 低リスク
・発生条件
WHERE句内の式に、BETWEEN 句で算術演算子を含む、または特定の単項関数が少なくとも2回出現するSQLクエリを使用する場合
[発生する問題]
上記で指定されたバージョンでは、SQLクエリが次の A,B いずれかの条件を満たす場合、誤った結果を返す可能性があります:
条件A:
WHERE句内でフィールドに対する算術式を含む BETWEEN 演算子を使用している場合
条件B:
フィールドに対する単項関数を含めた全く同じ算術式を複数回使用している場合
(そのうち少なくとも1回はWHERE句内で使用)
影響を受ける単項関数は以下の通り:
o 単項の負号、または %MINUS()
o 単項の正号、TO_NUMBER()、または %PLUS()
o %SQLUPPER()、%SQLSTRING()、%UPPER()、%ALPHAUP などの照合関数
o コレクションプロパティに対する %KEY および %VALUE 述語
o TRUNCATE()
BETWEEN句は、開始値と終了値の2つの条件としてカウントされることに注意してください。
そのため、BETWEEN句内でこのような式を使用しているクエリは、本問題の影響を受けます。
たとえば、次のステートメントは、条件A を満たすため影響を受けます:
SELECT * FROM t1 WHERE 4*(c1+2) BETWEEN 0 AND 1
SELECT * FROM t1 WHERE (1-TO_NUMBER(c1))/2 BETWEEN 0 AND 1
以下のステートメントは、条件B を満たすため影響を受けます。
これらは、単項関数を含む式が複数回出現する例です:
SELECT -c1 FROM t1 WHERE -c1 > 0
SELECT * FROM t1 WHERE -c1 > 0 HAVING 0 < -c1
SELECT * FROM t1 WHERE -c1 > 0 ORDER BY -c1
SELECT * FROM t1 WHERE -c1-1 > 0 AND -c1-1 < 5
SELECT * FROM t1 WHERE %MINUS(c1) > 0 AND 0 < %MINUS(c1)+2
SELECT TRUNCATE(c2,2) FROM t1 WHERE TRUNCATE(c2,2)-20>0
SELECT favoriteColors FROM sample.person WHERE FOR SOME %ELEMENT(favoriteColors) ( %KEY = 2 OR %KEY + 1 = 7 ) ORDER BY 1
以下のステートメントは影響を受けません。
算術式と組み合わせて使用されるBETWEEN演算子が存在せず (条件A)、また単項関数を使った同一の算術式が複数回出現しない (条件B) ためです:
SELECT c1 FROM t1 WHERE -c1 > 0
SELECT * FROM t1 WHERE 2*c1 > 0 AND 0 < TO_NUMBER(c1)
SELECT 2*c1 FROM t1 WHERE 2*c1 > 1
SELECT * FROM t1 WHERE c1/2 > 1 or c1/2 < 5
SELECT * FROM t1 WHERE 2*c1+3 > 0 AND 0 < -c1
[影響]
この問題により、処理中に繰り返し使用されるフィールド式が別の値に置き換えられることで、InterSystems SQL がエラーを発生させずに誤った結果を返す可能性があります。
これにより、さまざまな問題が発生する可能性があります:
o 一部の行が誤って結果から除外されたり、結果に追加される場合があります。
o 結果セットの並び順に誤りが生じる場合があります。
o 上記のようなフィールド参照に基づく列に誤った値が含まれる場合があります。
[解決策]
この問題はバージョン 2024.1.6, 2025.1.3, 2025.3.0 およびそれ以降のバージョンで修正されています。
・2025.3.0 は 2025年11月19日に提供開始されました。
・2025.1.3 は 2026年1月28日に提供開始予定です。
・2024.1.6 は 2026年4月15日に提供開始予定です。
お客様のご要望により、本修正 DP-445844 を現在お使いの製品に対する Adhocとして個別に作成し、提供することが可能です。
お使いのシステムに対するAdhoc が必要な場合は、カスタマーサポートセンターまでお知らせ下さい。
この警告についてご質問がある場合は、カスタマーサポートセンターにご連絡下さい。
























