Skip to content
搜索以了解InterSystems产品和解决方案,职业机会等。

10月21日官方公告:在SQL查询中使用新的OFFSET关键字时存在静默错误结果的风险

摘要

公告编号
受影响的产品和版本风险类别和评分明确要求
DP-445340

InterSystems IRIS® 数据平台

InterSystems IRIS® for Health

HealthShare® Health Connect
2025.1.0 - 2025.1.2 和 2025.2.0 版本

错误结果:低风险在 SQL 查询中使用 OFFSET 关键字

问题

在InterSystems IRIS 2025.1.0 - 2025.1.2版本以及2025.2.0版本中,使用新的OFFSET关键字对结果进行分页的SQL查询,在并行执行时可能会返回错误结果。 这种情况在使用ANSI风格的OFFSET/FETCH语法以及替代性的LIMIT/OFFSET语法时均会出现(出现这种情况的原因是,优化器基于大表规模或显式的%PARALLEL提示作出了决策)。

使用不带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 日推出。
  • 在此期间,若客户需要在这些版本发布前获得修复,可通过全球响应中心申请该修复的临时分发版本(DP-445425)。
  • 作为缓解措施,客户可选择以下任一方式修改查询:
    • 省略OFFSET #子句,并手动跳过前#条结果;
    • 添加%NOPARALLEL提示,以确保查询不使用并行执行。

更多信息

如有疑问或需要帮助,请联系InterSystems 全球响应中心 (WRC)

最新警报和通知

10月 14, 2025
在 InterSystems IRIS、InterSystems IRIS for Health 和 HealthShare Health Connect(版本 2025.1.1 和 2025.2.0)中,新的 "镜像数据库下载"功能不包括某些global。
6月 27, 2025
公告编号 受影响的产品和版本 风险类别和评分 明确要求 DP-439649 产品
5月 02, 2025
InterSystems 已经解决了影响在 InterSystems IRIS、InterSystems IRIS for Health、HealthShare、HealthShare HealthConnect、TrakCare、Caché 和 Ensemble 上使用 OAuth2 Client 配置的应用程序的安全漏洞。 补救步骤和其他指导文档可从 InterSystems 全球响应中心 (WRC) 获取。
4月 08, 2025
受影响的产品和版本 明确要求 DP-439207 InterSystems IRIS® data platform 2024.3 (AIX) 在AIX(操作系统)安装过程中使用JSON处理以及支持Unicode非拉丁语系-1字符集 DP-439280 InterSystems IRIS 2024.3(使用 IntegratedML 的容器) 使用 TensorFlow 的 IntegratedML 容器
2月 22, 2025
InterSystems 已纠正了两个可能导致少数 SQL 查询返回不正确结果的问题。 此外,InterSystems 还纠正了日期/时间数据类型处理中的不一致性,对于依赖于先前不一致性行为的现有应用程序来说,这种不一致性可能会导致不同的、意想不到的但正确的结果。
2月 19, 2025
InterSystems 已修复一个缺陷,该缺陷导致在使用特定 $LIST 语法时引入无效的数据库和日志记录。 遇到这种缺陷的可能性很低,但对运营的影响可能很大。
10月 09, 2024
InterSystems 已经解决了影响 InterSystems IRIS、InterSystems IRIS for Health、HealthShare、HealthShare HealthConnect、TrakCare、Caché 和 Ensemble 的 Web 网关和 CSP 网关的安全漏洞。可从 InterSystems 全球响应中心 (WRC) 获取补救步骤和其他指导文件。在讨论本通知时,请参考 "SVR2024A"。 如需修复帮助,请联系您的应用程序提供商或 InterSystems 全球响应中心。
8月 21, 2024
InterSystems 已修复了一个缺陷,在极少数情况下,该缺陷可能导致多卷数据库出现数据库损坏或 错误。只有被截断的数据库才存在风险。
6月 03, 2024
从发布InterSystems IRIS®数据平台2022.3开始,InterSystems修改了许可证强制执行机制,以包括REST和SOAP请求。由于这种变化,在升级后,使用REST或SOAP的非处理器核数的许可证环境下,用户可能会遇到更高的许可证消耗。要确定此警报是否适用于您的InterSystems许可证,请按照下面链接的FAQ中的说明进行操作。
5月 01, 2024
InterSystems has corrected an issue that can cause a small number of SQL queries to return incorrect results. See below for the specifics on impacted queries.