Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

附录 D. SQL 合规性

目录

D.1. 支持的功能
D.2. 不支持的功能
D.3. XML 限制和对 SQL/XML 的符合性
D.3.1. 查询限制为 XPath 1.0
D.3.2. 实现的附带限制

本部分力图概述 PostgreSQL 到何种程度符合当前 SQL 标准。以下信息并非完全符合声明,但它以合理且对用户有用的方式呈现尽可能多的主要主题详细信息。

SQL 标准的正式名称为 ISO/IEC 9075 Database Language SQL。标准的修订版时常发布;最新更新出现在 2023 年。2023 年版称为 ISO/IEC 9075:2023 或简称 SQL:2023。之前的版本有 SQL:2016、SQL:2011、SQL:2008、SQL:2006、SQL:2003、SQL:1999 和 SQL-92。每个版本都会替换前一个版本,因此对于早期版本的合格声明没有官方效力。 PostgreSQL 开发的目标是符合标准的最新官方版本,其中合格性不会与传统功能或常识相矛盾。尽管有时语法或功能略有不同,但 SQL 标准要求的许多功能都受支持。随着时间的推移,可以预期会有更多举措朝合格性迈进。

SQL-92针对合格性定义了三个功能集:入门级、中级和完全级。声称SQL仅在入门级别符合标准的大多数数据库管理系统,因为中级和完全级别的所有功能集要么过于庞大,要么与遗留行为相冲突。

SQL:1999开始,SQL 标准定义了一大批独立功能,而不是中SQL-92中发现的无效的三个层级。这些功能中的一大部分代表 核心 功能,每一个符合要求的 SQL 实现都必须提供该功能。其余功能纯属可选。

该标准被分成数个部分,每个部分也有简称

请注意,某些部分编号并未(或不再)使用。

PostgreSQL 核心包含第 1、2、9、11 和 14 部分。第 3 部分由 ODBC 驱动程序涵盖,第 13 部分由 PL/Java 插件涵盖,但目前尚未验证对这些组件的完全符合性。目前没有 PostgreSQL 的部分 4、10、15 和 16 的实现方式。

PostgreSQL 支持 SQL:2023 的大部分主要特性。对于完全 Core 符合性所需 177 个强制特性,PostgreSQL 符合其中至少 170 个。此外,还有一长串受支持的可选特性。值得注意的是,在编写本文时,没有任何数据库管理系统的当前版本声称完全符合 Core SQL:2023。

在以下两个章节中,我们提供了 PostgreSQL 支持的那些特性的列表,随后提供了SQL:2023中定义而 PostgreSQL 中尚未受支持的特性列表。这两个列表都是近似的:对于标为受支持的特性而言,可能存在不符合的次要细节,而事实上,未受支持的特性的大部分实际上可能已经得到实施。文档的主体部分始终包含关于什么可行、什么不可行的最准确的信息。

注意

包含连字符的特性代码是子特性。因此,如果一个特定的子特性不受支持,则主特性将列为不受支持,即使其他一些子特性受支持。