Skip to content
インタ―システムズ製品やソリューション、キャリアの機会などについて、検索してご覧ください。

警告:SQLクエリが間違った結果を返す

インターシステムズは、SQL クエリが不正な結果を返す原因となる 2 つの問題を修正しました。さらに、日付/時刻データ型の処理における不整合を修正しました。この日付/時刻データ型の処理の修正により以前の不整合な動作に依存していた既存のアプリケーションでは、異なる予期しない(正しい)結果が返される可能性があります。

DP-436825: ラテラル結合を使用したSQLクエリが間違った結果を返すことがある

最初の問題 (DP-436825) は、プロセスあたりの最大メモリ (.cpf ファイルの「 bbsiz」パラメータ) を既定値以外で構成されたインスタンスで、暗黙的または明示的に ラテラル結合を使用する SQL クエリにのみ影響します。InterSystems IRIS を新規にインストールすると、bbsiz は既定値の -1 (つまり、メモリ制限はありません) に設定されます。
一方、古いバージョンからのアップグレードでは、以前の設定が維持されます。この設定でクエリが実行時に並列処理を使用する場合 (システムが並列処理を使用する場合を含む)、クエリが正しくない結果を返すことがあります。

この問題は、以下の製品のバージョン 2023.3、2024.1.0、2024.1.1、2024.1.2、2024.2、および 2024.3 に影響します:

  • InterSystems IRIS data platform
  • InterSystems IRIS for Health
  • HealthShare Health Connect

この問題は、HealthShare Unified Care Record および関連製品にも影響します:
バージョン 2024.2 の HealthShare Unified Care Record および関連製品では、製品コードでラテラル結合を使用する SQL クエリは使用されません。しかしプロセスあたりの最大メモリが既定値以外かつ HealthShare 2024.2 にアップグレードした場合は、ユーザがラテラル結合を使用する独自の SQL クエリを記述している際には影響を受ける可能性があります。

この問題を回避するには、以下の3つのいずれかを実施します:

  • bbsiz パラメータを -1 に設定
  • ラテラル結合を含むクエリで %NOPARALLEL キーワードの使用
  • 一時的にインスタンスの アダプティブ・モードを無効に して、クエリの自動並列処理を回避

これらの回避方法によって、クエリが正しい結果を返すことを確認しています。
この問題の修正は DP-436825 として修正され、2024.1.3、2025.1.0 以降の製品リリースに含まれます。 また、後述するAdhoc形式での配布も可能です。

DP-436998: %ID による逆ソートの SQL クエリが無限ループになる

2つ目の問題 (DP-436998) は、行 ID の降順で並べ替えを行うSQLクエリで、行 ID が正の(ビットマップ互換の) 整数で、かつ、特定のデータ状況において発生します。これらの条
件下では、クエリが無限ループに入り、中断されるまで同じ結果セットを返し続ける可能性があります。

この問題は、以下の製品のバージョン2022.2、2022.3、2023.x、2024.xに影響します:

  • InterSystems IRIS data platform
  • InterSystems IRIS for Health
  • HealthShare Health Connect

また、HealthShare Unified Care Record および関連製品にも影響します:
バージョン 2024.1 およびバージョン 2024.2 の HealthShare Unified Care Record および関連製品では、製品コードで %ID による逆ソートを含む SQL クエリを使用していません
が、%ID による逆ソートを含む独自のSQL クエリを記述しているユーザは影響を受ける可能性があります。

この問題の修正は DP-436998 として修正され、2023.1.6、2024.1.3、2025.1.0 以降の製品リリースに含まれます。
また、後述するAdhoc形式での配布も可能です。

DP-436633:DATE値とTIMESTAMP値を比較するSQLクエリ

インターシステムズは、<= 演算子、> 演算子、および BETWEEN 演算子を使用した DATE 値と TIMESTAMP 値の比較方法の不一致を修正しました。この修正により、特定の日付と時刻の比較結果が変更されました。

この修正は、以下の製品のバージョン 2023.3 以降で導入されました。

  • InterSystems IRIS data platform
  • InterSystems IRIS for Health
  • HealthShare Health Connect

また、HealthShare Unified Care Record および関連製品にも影響します:
バージョン 2024.2 以降

更新された動作では、DATE 値は比較の前に TIMESTAMP 値に強制されます。これは、精度の低いデータ型を最も精度の高いデータ型に強制変換するというSQLの標準に準拠しています。

例えば、新しい動作 (これは標準に準拠しています) では MyTimestamp が正確に午前零時と一致する場合を除き、これらのフィールドの値が同じ日付に対応する場合、「MyTimeStamp > MyDate」 というクエリ述語は FALSE と評価されます。
以前は、この動作は、MyTimeStamp フィールドが %PosixTime 形式で定義されている場合にのみ完全に標準に準拠し、%Timestamp または特定の特殊関数と変数の組み合わせを使用すると、特定のケースで標準に準拠しない結果を返していました。

予測可能な比較を確実に行うために、InterSystems では、明示的な CAST 関数を使用することをお勧めします。特に、結果の型が明らかでない可能性がある GETDATE()、NVL()、IFNULL() などの CASE 文や SQL 関数を使用する場合は、明示的な CAST 関数を使用することをお勧めします。

どの文が動作の変更の影響を受けるかを評価しやすくするため、クエリプランに警告を表示します。また、そのような文が実行時にエラーを発生するようにするオプションのシステム・フラグを導入しました。このフラグを有効にすると、アプリケーション・コードのリグレッション・テストの際に役立ち、実行時のユーザ・クエリに対する追加のセーフティ・ネットを提供することができます。

この情報提供機能は DP-436633として識別され、2024.1.4 および2025.1.0 以降のすべての製品リリースに含まれる予定です。

お客様のご要望により、本修正を現在お使いの製品に対する Adhoc として個別に作成し、提供することが可能です。
お使いのシステムに対する Adhoc が必要な場合は、カスタマーサポートセンターまでお知らせ下さい。

この警告について質問がある場合は、カスタマーサポートセンターにご連絡下さい。

最新のアラート&アドバイザリー

2025年 1月 16日
インターシステムズは、特定の $List シンタックスを使用することで不正なデータベースとジャーナルレコードが作成される問題を修正しました。この問題が発生する可能性は非常に低いものですが、発生した場合の影響は非常に大きなものとなります。
2024年 10月 10日
インターシステムズは、InterSystems IRIS、InterSystems IRIS for Health、HealthShare、HealthShare HealthConnect、TrakCare、Caché、および Ensemble の Web ゲートウェイ および CSP ゲートウェイ に影響を与えるセキュリティ脆弱性に対処しました。
2024年 8月 17日
インターシステムズは、非常にまれな状況下で、マルチボリュームデータベースでデータベース破損または エラーが発生する可能性がある不具合を修正しました。
2024年 8月 7日
HS2024-03 警告通知 には4つの警告が含まれます。 各警告の概要は以下の通りです。 各警告の詳細はリンク先の通知文書に記載されています。
2024年 7月 1日
Broadcom は、データベースアプリケーションにおいてデータ整合性エラーを引き起こす可能性がある問題を発表しました。詳細は、以下の Broadcom のページをご参照ください。
2024年 5月 2日
インターシステムズは、一部の SQL クエリが不正な結果を返す原因となる 3 つの不具合を修正しました。 影響を受けるクエリの詳細については、以下を参照してください。
2023年 11月 21日
InterSystems IRIS for Health, HealthShare Health Connect そしてHealthShare 製品に関して複数の警告(HS2023-02-*)が発表されました。
2023年 11月 15日
InterSystems は SAM (System Alerting & Monitoring) のサポートを終了し、今後は非推奨とすることを決定しました。 InterSystems は本テクノロジーを利用しているお客様のサポートを続けますが、新規プロジェクトでの利用を推奨しません。
2023年 10月 31日
InterSystems は InterSystems IRIS での VxFS ファイルシステムのサポートを終了し、 IRIS 2023.3 から非推奨とすることを決定しました。

今すぐ申し込む

サポートアラート、重要な問題、
修正、製品リリースに関する通知を受け取ることができます。
*必須項目
Highlighted fields are required
*必須項目
Highlighted fields are required
このフォームを送信することにより、お客様は、サポートアラート、重要な問題、重要なアップデート、修正、および製品リリースに関する通知を電子メールで受け取ることに同意するものとします。 さらに、お客様は、お客様のビジネスコンタクト情報が、米国でホストされている当社のCRMソリューションに入力されることに同意したことになります。お客様情報は、適用されるデータ保護法に従って維持されます。
**送信ボタンをクリックすることにより、お客様は、既存および将来のインターシステムズ製品、提供物、イベントに関するニュース、更新、その他のマーケティング目的のために連絡を受けることに同意します。