mirror of
https://github.com/postgres/postgres.git
synced 2025-07-31 22:04:40 +03:00
Update SQL features/conformance information to SQL:2011
This commit is contained in:
@ -14,9 +14,9 @@
|
|||||||
<para>
|
<para>
|
||||||
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
|
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
|
||||||
Language SQL</quote>. A revised version of the standard is released
|
Language SQL</quote>. A revised version of the standard is released
|
||||||
from time to time; the most recent update appearing in 2008.
|
from time to time; the most recent update appearing in 2011.
|
||||||
The 2008 version is referred to as ISO/IEC 9075:2008, or simply as SQL:2008.
|
The 2011 version is referred to as ISO/IEC 9075:2011, or simply as SQL:2011.
|
||||||
The versions prior to that were SQL:2003, SQL:1999, and SQL-92. Each version
|
The versions prior to that were SQL:2008, SQL:2003, SQL:1999, and SQL-92. Each version
|
||||||
replaces the previous one, so claims of conformance to earlier
|
replaces the previous one, so claims of conformance to earlier
|
||||||
versions have no official merit.
|
versions have no official merit.
|
||||||
<productname>PostgreSQL</productname> development aims for
|
<productname>PostgreSQL</productname> development aims for
|
||||||
@ -50,8 +50,8 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The <acronym>SQL:2008</acronym> and <acronym>SQL:2003</acronym>
|
The standard versions beginning with <acronym>SQL:2003</acronym>
|
||||||
standard versions are also split into a number
|
are also split into a number
|
||||||
of parts. Each is known by a shorthand name. Note that these parts
|
of parts. Each is known by a shorthand name. Note that these parts
|
||||||
are not consecutively numbered.
|
are not consecutively numbered.
|
||||||
|
|
||||||
@ -78,18 +78,18 @@
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
PostgreSQL supports most of the major features of SQL:2008. Out of
|
PostgreSQL supports most of the major features of SQL:2011. Out of
|
||||||
179 mandatory features required for full Core conformance,
|
179 mandatory features required for full Core conformance,
|
||||||
PostgreSQL conforms to at least 160. In addition, there is a long
|
PostgreSQL conforms to at least 160. In addition, there is a long
|
||||||
list of supported optional features. It might be worth noting that at
|
list of supported optional features. It might be worth noting that at
|
||||||
the time of writing, no current version of any database management
|
the time of writing, no current version of any database management
|
||||||
system claims full conformance to Core SQL:2008.
|
system claims full conformance to Core SQL:2011.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
In the following two sections, we provide a list of those features
|
In the following two sections, we provide a list of those features
|
||||||
that <productname>PostgreSQL</productname> supports, followed by a
|
that <productname>PostgreSQL</productname> supports, followed by a
|
||||||
list of the features defined in <acronym>SQL:2008</acronym> which
|
list of the features defined in <acronym>SQL:2011</acronym> which
|
||||||
are not yet supported in <productname>PostgreSQL</productname>.
|
are not yet supported in <productname>PostgreSQL</productname>.
|
||||||
Both of these lists are approximate: There might be minor details that
|
Both of these lists are approximate: There might be minor details that
|
||||||
are nonconforming for a feature that is listed as supported, and
|
are nonconforming for a feature that is listed as supported, and
|
||||||
@ -132,7 +132,7 @@
|
|||||||
<title>Unsupported Features</title>
|
<title>Unsupported Features</title>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The following features defined in <acronym>SQL:2008</acronym> are not
|
The following features defined in <acronym>SQL:2011</acronym> are not
|
||||||
implemented in this release of
|
implemented in this release of
|
||||||
<productname>PostgreSQL</productname>. In a few cases, equivalent
|
<productname>PostgreSQL</productname>. In a few cases, equivalent
|
||||||
functionality is available.
|
functionality is available.
|
||||||
|
@ -29,6 +29,8 @@ B125 Routine language MUMPS NO
|
|||||||
B126 Routine language Pascal NO
|
B126 Routine language Pascal NO
|
||||||
B127 Routine language PL/I NO
|
B127 Routine language PL/I NO
|
||||||
B128 Routine language SQL NO
|
B128 Routine language SQL NO
|
||||||
|
B211 Module language Ada: VARCHAR and NUMERIC support NO
|
||||||
|
B221 Routine language Ada: VARCHAR and NUMERIC support NO
|
||||||
E011 Numeric data types YES
|
E011 Numeric data types YES
|
||||||
E011 Numeric data types 01 INTEGER and SMALLINT data types YES
|
E011 Numeric data types 01 INTEGER and SMALLINT data types YES
|
||||||
E011 Numeric data types 02 REAL, DOUBLE PRECISION, and FLOAT data types YES
|
E011 Numeric data types 02 REAL, DOUBLE PRECISION, and FLOAT data types YES
|
||||||
@ -176,6 +178,7 @@ F051 Basic date and time 07 LOCALTIME YES
|
|||||||
F051 Basic date and time 08 LOCALTIMESTAMP YES
|
F051 Basic date and time 08 LOCALTIMESTAMP YES
|
||||||
F052 Intervals and datetime arithmetic YES
|
F052 Intervals and datetime arithmetic YES
|
||||||
F053 OVERLAPS predicate YES
|
F053 OVERLAPS predicate YES
|
||||||
|
F054 TIMESTAMP in DATE type precedence list NO
|
||||||
F081 UNION and EXCEPT in views YES
|
F081 UNION and EXCEPT in views YES
|
||||||
F111 Isolation levels other than SERIALIZABLE YES
|
F111 Isolation levels other than SERIALIZABLE YES
|
||||||
F111 Isolation levels other than SERIALIZABLE 01 READ UNCOMMITTED isolation level YES
|
F111 Isolation levels other than SERIALIZABLE 01 READ UNCOMMITTED isolation level YES
|
||||||
@ -228,6 +231,7 @@ F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION NO
|
|||||||
F311 Schema definition statement 05 GRANT statement YES
|
F311 Schema definition statement 05 GRANT statement YES
|
||||||
F312 MERGE statement NO
|
F312 MERGE statement NO
|
||||||
F313 Enhanced MERGE statement NO
|
F313 Enhanced MERGE statement NO
|
||||||
|
F314 MERGE statement with DELETE branch NO
|
||||||
F321 User authorization YES
|
F321 User authorization YES
|
||||||
F341 Usage tables NO no ROUTINE_*_USAGE tables
|
F341 Usage tables NO no ROUTINE_*_USAGE tables
|
||||||
F361 Subprogram support YES
|
F361 Subprogram support YES
|
||||||
@ -236,6 +240,10 @@ F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN clause
|
|||||||
F381 Extended schema manipulation 02 ALTER TABLE statement: ADD CONSTRAINT clause YES
|
F381 Extended schema manipulation 02 ALTER TABLE statement: ADD CONSTRAINT clause YES
|
||||||
F381 Extended schema manipulation 03 ALTER TABLE statement: DROP CONSTRAINT clause YES
|
F381 Extended schema manipulation 03 ALTER TABLE statement: DROP CONSTRAINT clause YES
|
||||||
F382 Alter column data type YES
|
F382 Alter column data type YES
|
||||||
|
F383 Set column not null clause YES
|
||||||
|
F384 Drop identity property clause NO
|
||||||
|
F385 Drop column generation expression clause NO
|
||||||
|
F386 Set identity column generation clause NO
|
||||||
F391 Long identifiers YES
|
F391 Long identifiers YES
|
||||||
F392 Unicode escapes in identifiers YES
|
F392 Unicode escapes in identifiers YES
|
||||||
F393 Unicode escapes in literals YES
|
F393 Unicode escapes in literals YES
|
||||||
@ -262,6 +270,7 @@ F461 Named character sets NO
|
|||||||
F471 Scalar subquery values YES
|
F471 Scalar subquery values YES
|
||||||
F481 Expanded NULL predicate YES
|
F481 Expanded NULL predicate YES
|
||||||
F491 Constraint management YES
|
F491 Constraint management YES
|
||||||
|
F492 Optional table constraint enforcement NO
|
||||||
F501 Features and conformance views YES
|
F501 Features and conformance views YES
|
||||||
F501 Features and conformance views 01 SQL_FEATURES view YES
|
F501 Features and conformance views 01 SQL_FEATURES view YES
|
||||||
F501 Features and conformance views 02 SQL_SIZING view YES
|
F501 Features and conformance views 02 SQL_SIZING view YES
|
||||||
@ -327,6 +336,8 @@ F862 <result offset clause> in subqueries YES
|
|||||||
F863 Nested <result offset clause> in <query expression> YES
|
F863 Nested <result offset clause> in <query expression> YES
|
||||||
F864 Top-level <result offset clause> in views YES
|
F864 Top-level <result offset clause> in views YES
|
||||||
F865 <offset row count> in <result offset clause> YES
|
F865 <offset row count> in <result offset clause> YES
|
||||||
|
F866 FETCH FIRST clause: PERCENT option NO
|
||||||
|
F867 FETCH FIRST clause: WITH TIES option NO
|
||||||
S011 Distinct data types NO
|
S011 Distinct data types NO
|
||||||
S011 Distinct data types 01 USER_DEFINED_TYPES view NO
|
S011 Distinct data types 01 USER_DEFINED_TYPES view NO
|
||||||
S023 Basic structured types NO
|
S023 Basic structured types NO
|
||||||
@ -414,6 +425,8 @@ T175 Generated columns NO
|
|||||||
T176 Sequence generator support NO
|
T176 Sequence generator support NO
|
||||||
T177 Sequence generator support: simple restart option NO
|
T177 Sequence generator support: simple restart option NO
|
||||||
T178 Identity columns: simple restart option NO
|
T178 Identity columns: simple restart option NO
|
||||||
|
T180 System-versioned tables NO
|
||||||
|
T181 Application-time period tables NO
|
||||||
T191 Referential action RESTRICT YES
|
T191 Referential action RESTRICT YES
|
||||||
T201 Comparable data types for referential constraints YES
|
T201 Comparable data types for referential constraints YES
|
||||||
T211 Basic trigger capability NO
|
T211 Basic trigger capability NO
|
||||||
@ -445,13 +458,14 @@ T321 Basic SQL-invoked routines 04 CALL statement NO
|
|||||||
T321 Basic SQL-invoked routines 05 RETURN statement NO
|
T321 Basic SQL-invoked routines 05 RETURN statement NO
|
||||||
T321 Basic SQL-invoked routines 06 ROUTINES view YES
|
T321 Basic SQL-invoked routines 06 ROUTINES view YES
|
||||||
T321 Basic SQL-invoked routines 07 PARAMETERS view YES
|
T321 Basic SQL-invoked routines 07 PARAMETERS view YES
|
||||||
T322 Overloading of SQL-invoked functions and procedures YES
|
T322 Declared data type attributes NO
|
||||||
T323 Explicit security for external routines YES
|
T323 Explicit security for external routines YES
|
||||||
T324 Explicit security for SQL routines NO
|
T324 Explicit security for SQL routines NO
|
||||||
T325 Qualified SQL parameter references NO
|
T325 Qualified SQL parameter references NO
|
||||||
T326 Table functions NO
|
T326 Table functions NO
|
||||||
T331 Basic roles YES
|
T331 Basic roles YES
|
||||||
T332 Extended roles NO mostly supported
|
T332 Extended roles NO mostly supported
|
||||||
|
T341 Overloading of SQL-invoked functions and procedures YES
|
||||||
T351 Bracketed SQL comments (/*...*/ comments) YES
|
T351 Bracketed SQL comments (/*...*/ comments) YES
|
||||||
T431 Extended grouping capabilities NO
|
T431 Extended grouping capabilities NO
|
||||||
T432 Nested and concatenated GROUPING SETS NO
|
T432 Nested and concatenated GROUPING SETS NO
|
||||||
@ -460,9 +474,14 @@ T434 GROUP BY DISTINCT NO
|
|||||||
T441 ABS and MOD functions YES
|
T441 ABS and MOD functions YES
|
||||||
T461 Symmetric BETWEEN predicate YES
|
T461 Symmetric BETWEEN predicate YES
|
||||||
T471 Result sets return value NO
|
T471 Result sets return value NO
|
||||||
|
T472 DESCRIBE CURSOR NO
|
||||||
T491 LATERAL derived table NO
|
T491 LATERAL derived table NO
|
||||||
|
T495 Combined data change and retrieval NO different syntax
|
||||||
T501 Enhanced EXISTS predicate YES
|
T501 Enhanced EXISTS predicate YES
|
||||||
|
T502 Period predicates NO
|
||||||
T511 Transaction counts NO
|
T511 Transaction counts NO
|
||||||
|
T521 Named arguments in CALL statement NO
|
||||||
|
T522 Default values for IN parameters of SQL-invoked procedures NO
|
||||||
T541 Updatable table references NO
|
T541 Updatable table references NO
|
||||||
T551 Optional key words for default syntax YES
|
T551 Optional key words for default syntax YES
|
||||||
T561 Holdable locators NO
|
T561 Holdable locators NO
|
||||||
@ -479,6 +498,8 @@ T615 LEAD and LAG functions YES
|
|||||||
T616 Null treatment option for LEAD and LAG functions NO
|
T616 Null treatment option for LEAD and LAG functions NO
|
||||||
T617 FIRST_VALUE and LAST_VALUE function YES
|
T617 FIRST_VALUE and LAST_VALUE function YES
|
||||||
T618 NTH_VALUE function NO function exists, but some options missing
|
T618 NTH_VALUE function NO function exists, but some options missing
|
||||||
|
T619 Nested window functions NO
|
||||||
|
T620 WINDOW clause: GROUPS option NO
|
||||||
T621 Enhanced numeric functions YES
|
T621 Enhanced numeric functions YES
|
||||||
T631 IN predicate with one list element YES
|
T631 IN predicate with one list element YES
|
||||||
T641 Multiple column assignment NO only some syntax variants supported
|
T641 Multiple column assignment NO only some syntax variants supported
|
||||||
@ -648,3 +669,4 @@ X303 XMLTable: column default option NO
|
|||||||
X304 XMLTable: passing a context item NO
|
X304 XMLTable: passing a context item NO
|
||||||
X305 XMLTable: initializing an XQuery variable NO
|
X305 XMLTable: initializing an XQuery variable NO
|
||||||
X400 Name and identifier mapping YES
|
X400 Name and identifier mapping YES
|
||||||
|
X410 Alter column data type: XML type YES
|
||||||
|
Reference in New Issue
Block a user