インターシステムズは、SQL クエリによって不正な結果が返される可能性がある不具合を修正しました。
対象バージョン:
- InterSystems IRIS data platform 2021.2, 2022.1.x, 2022.2, 2022.3
- InterSystems IRIS for Health 2021.2, 2022.1.x, 2022.2, 2022.3
- HealthShare Health Connect 2021.2, 2022.1.x, 2022.2, 2022.3
- InterSystems HealthShare 2022.2
対象プラットフォーム: すべて
[発生する問題]
上記の InterSystems 製品のバージョンにおいて、間違ったクエリ結果が返る可能性があります。
[問題の詳細]
この問題は、2022.1 / 2021.2 で新しく導入された RunTime Plan Choice (RTPC) 機能によって最適化されるクエリにおいて発生します。
https://docs.intersystems.com/iris20221/csp/docbookj/DocBook.UI.Page.cls?KEY=GSQLOPT_cachedqueries#GSQLOPT_cachedqueries_rtpc
この機能はデフォルトで有効になっています。
クエリに "真理値" (truth value) WHERE ? = ? が含まれている場合に問題が発生する可能性があり、クエリの一部の条件が正しく評価されずに不正な結果が返されます。
注意:
SQL文が影響を受けるかを事前に評価することはできません。
これは、InterSystems SQL最適化処理が事象を引き起こす真理値をクエリ内部表現として追加する場合があるためです。
[問題の回避方法]
暫定的な回避策として、以下の手順で RTPC 機能を無効にすることにより、不正な結果が発生する問題を防ぐことができます。
https://docs.intersystems.com/iris20221/csp/docbookj/DocBook.UI.Page.cls?KEY=RACS_RTPC
注意:
InterSystems HealthShare での回避方法の追加情報については別途ご案内する予定です。
この問題の修正IDは YCL227 です。この修正は今後リリースされるすべての製品に含まれる予定です。
このアラートについて質問がある場合は、インターシステムズカスタマーサポートセンターまでご連絡下さい。