Update feature list for SQL:2008.

This commit is contained in:
Peter Eisentraut 2008-10-18 00:35:32 +00:00
parent af59a0650b
commit 123c8efd89
3 changed files with 160 additions and 25 deletions

View File

@ -1,4 +1,4 @@
<!-- $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.27 2007/02/03 17:59:35 petere Exp $ -->
<!-- $PostgreSQL: pgsql/doc/src/sgml/features.sgml,v 2.28 2008/10/18 00:35:32 petere Exp $ -->
<appendix id="features">
<title>SQL Conformance</title>
@ -14,10 +14,9 @@
<para>
The formal name of the SQL standard is ISO/IEC 9075 <quote>Database
Language SQL</quote>. A revised version of the standard is released
from time to time; the most recent full update appearing in 2003,
with a partial update appearing in 2006. The 2003 version is
referred to as ISO/IEC 9075:2003, or simply as SQL:2003. The
versions prior to that were SQL:1999 and SQL-92. Each version
from time to time; the most recent update appearing in 2008.
The 2008 version is referred to as ISO/IEC 9075:2008, or simply as SQL:2008.
The versions prior to that were SQL:2003, SQL:1999, and SQL-92. Each version
replaces the previous one, so claims of conformance to earlier
versions have no official merit.
<productname>PostgreSQL</productname> development aims for
@ -53,7 +52,8 @@
</para>
<para>
The <acronym>SQL:2003</acronym> standard is also split into a number
The <acronym>SQL:2008</acronym> and <acronym>SQL:2003</acronym>
standard versions are also split into a number
of parts. Each is known by a shorthand name. Note that these parts
are not consecutively numbered.
@ -79,18 +79,18 @@
</para>
<para>
PostgreSQL supports most of the major features of SQL:2003. Out of
164 mandatory features required for full Core conformance,
PostgreSQL conforms to at least 150. In addition, there is a long
PostgreSQL supports most of the major features of SQL:2008. Out of
179 mandatory features required for full Core conformance,
PostgreSQL conforms to at least 160. In addition, there is a long
list of supported optional features. It might be worth noting that at
the time of writing, no current version of any database management
system claims full conformance to Core SQL:2003.
system claims full conformance to Core SQL:2008.
</para>
<para>
In the following two sections, we provide a list of those features
that <productname>PostgreSQL</productname> supports, followed by a
list of the features defined in <acronym>SQL:2003</acronym> which
list of the features defined in <acronym>SQL:2008</acronym> which
are not yet supported in <productname>PostgreSQL</productname>.
Both of these lists are approximate: There might be minor details that
are nonconforming for a feature that is listed as supported, and
@ -133,7 +133,7 @@
<title>Unsupported Features</title>
<para>
The following features defined in <acronym>SQL:2003</acronym> are not
The following features defined in <acronym>SQL:2008</acronym> are not
implemented in this release of
<productname>PostgreSQL</productname>. In a few cases, equivalent
functionality is available.

View File

@ -1,6 +1,6 @@
# /usr/bin/perl -w
# $PostgreSQL: pgsql/doc/src/sgml/mk_feature_tables.pl,v 2.2 2006/03/11 04:38:30 momjian Exp $
# $PostgreSQL: pgsql/doc/src/sgml/mk_feature_tables.pl,v 2.3 2008/10/18 00:35:32 petere Exp $
my $yesno = $ARGV[0];
@ -30,6 +30,8 @@ while (<FEAT>) {
$is_supported eq $yesno || next;
$feature_name =~ s/</&lt;/g;
$feature_name =~ s/>/&gt;/g;
$subfeature_name =~ s/</&lt;/g;
$subfeature_name =~ s/>/&gt;/g;

View File

@ -11,6 +11,7 @@ B032 Extended dynamic SQL NO
B032 Extended dynamic SQL 01 <describe input statement> NO
B033 Untyped SQL-invoked function arguments NO
B034 Dynamic specification of cursor attributes NO
B035 Non-extended descriptor names NO
B041 Extensions to embedded SQL exception declarations NO
B051 Enhanced execution rights NO
B111 Module language Ada NO
@ -106,13 +107,13 @@ E101 Basic data manipulation 01 INSERT statement YES
E101 Basic data manipulation 03 Searched UPDATE statement YES
E101 Basic data manipulation 04 Searched DELETE statement YES
E111 Single row SELECT statement YES
E121 Basic cursor support NO
E121 Basic cursor support YES
E121 Basic cursor support 01 DECLARE CURSOR YES
E121 Basic cursor support 02 ORDER BY columns need not be in select list YES
E121 Basic cursor support 03 Value expressions in ORDER BY clause YES
E121 Basic cursor support 04 OPEN statement YES
E121 Basic cursor support 06 Positioned UPDATE statement NO
E121 Basic cursor support 07 Positioned DELETE statement NO
E121 Basic cursor support 06 Positioned UPDATE statement YES
E121 Basic cursor support 07 Positioned DELETE statement YES
E121 Basic cursor support 08 CLOSE statement YES
E121 Basic cursor support 10 FETCH statement implicit NEXT YES
E121 Basic cursor support 17 WITH HOLD cursors YES
@ -184,6 +185,8 @@ F111 Isolation levels other than SERIALIZABLE 03 REPEATABLE READ isolation level
F121 Basic diagnostics management NO
F121 Basic diagnostics management 01 GET DIAGNOSTICS statement NO
F121 Basic diagnostics management 02 SET TRANSACTION statement: DIAGNOSTICS SIZE clause NO
F122 Enhanced diagnostics management NO
F123 All diagnostics NO
F131 Grouped operations YES
F131 Grouped operations 01 WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views YES
F131 Grouped operations 02 Multiple tables supported in queries with grouped views YES
@ -193,7 +196,9 @@ F131 Grouped operations 05 Single row SELECT with GROUP BY and HAVING clauses an
F171 Multiple schemas per user YES
F181 Multiple module support NO
F191 Referential delete actions YES
F200 TRUNCATE TABLE statement YES
F201 CAST function YES
F202 TRUNCATE TABLE: identity column restart option NO
F221 Explicit defaults YES
F222 INSERT statement: DEFAULT VALUES clause YES
F231 Privilege tables YES
@ -223,6 +228,7 @@ F311 Schema definition statement 03 CREATE VIEW YES
F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION NO
F311 Schema definition statement 05 GRANT statement YES
F312 MERGE statement NO
F313 Enhanced MERGE statement NO
F321 User authorization YES
F341 Usage tables NO
F361 Subprogram support YES
@ -230,14 +236,17 @@ F381 Extended schema manipulation YES
F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN 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
F382 Alter column data type NO PostgreSQL syntax differs
F391 Long identifiers YES
F392 Unicode escapes in identifiers NO
F393 Unicode escapes in literals NO
F394 Optional normal form specification NO
F401 Extended joined table YES
F401 Extended joined table 01 NATURAL JOIN YES
F401 Extended joined table 02 FULL OUTER JOIN YES
F401 Extended joined table 04 CROSS JOIN YES
F402 Named column joins for LOBs, arrays, and multisets NO
F403 Partitioned joined tables NO
F411 Time zone specification YES differences regarding literal interpretation
F421 National character YES
F431 Read-only scrollable cursors YES
@ -274,7 +283,7 @@ F651 Catalog name qualifiers YES
F661 Simple tables NO
F671 Subqueries in CHECK NO intentionally omitted
F672 Retrospective check constraints YES
F691 Collation and translation NO
F690 Collation support NO
F692 Enhanced collation support NO
F693 SQL-session and client module collations NO
F695 Translation support NO
@ -286,17 +295,39 @@ F731 INSERT column privileges NO
F741 Referential MATCH types NO no partial match yet
F751 View CHECK enhancements NO
F761 Session management YES
F762 CURRENT_CATALOG NO same as current_database()
F763 CURRENT_SCHEMA NO same as current_schema()
F771 Connection management YES
F781 Self-referencing operations YES
F791 Insensitive cursors YES
F801 Full set function YES
F811 Extended flagging NO
F812 Basic flagging NO
F813 Extended flagging NO
F821 Local table references NO
F831 Full cursor update NO
F831 Full cursor update 01 Updatable scrollable cursors NO
F831 Full cursor update 02 Updatable ordered cursors NO
F841 LIKE_REGEX predicate NO
F842 OCCURENCES_REGEX function NO
F843 POSITION_REGEX function NO
F844 SUBSTRING_REGEX function NO
F845 TRANSLATE_REGEX function NO
F846 Octet support in regular expression operators NO
F847 Nonconstant regular expressions NO
F850 Top-level <order by clause> in <query expression> YES
F851 <order by clause> in subqueries YES
F852 Top-level <order by clause> in views YES
F855 Nested <order by clause> in <query expression> YES
F856 Nested <fetch first clause> in <query expression> YES
F857 Top-level <fetch first clause> in <query expression> NO same as LIMIT
F858 <fetch first clause> in subqueries NO same as LIMIT
F859 Top-level <fetch first clause> in views NO same as LIMIT
F860 <fetch first row count> in <fetch first clause> NO same as LIMIT
F861 Top-level <result offset clause> in <query expression> NO same as OFFSET
F862 <result offset clause> in subqueries NO same as OFFSET
F863 Nested <result offset clause> in <query expression> NO same as OFFSET
F864 Top-level <result offset clause> in views NO same as OFFSET
F865 <offset row count> in <result offset clause> NO same as OFFSET
S011 Distinct data types NO
S011 Distinct data types 01 USER_DEFINED_TYPES view NO
S023 Basic structured types NO
@ -319,6 +350,7 @@ S094 Arrays of reference types NO
S095 Array constructors by query NO
S096 Optional array bounds NO
S097 Array element assignment NO
S098 ARRAY_AGG NO
S111 ONLY in query expressions YES
S151 Type predicate NO
S161 Subtype treatment NO
@ -341,7 +373,16 @@ S274 Multisets of reference types NO
S275 Advanced multiset support NO
S281 Nested collection types NO
S291 Unique constraint on entire row NO
S301 Enhanced UNNEST NO
S401 Distinct types based on array types NO
S402 Distinct types based on distinct types NO
S403 MAX_CARDINALITY NO
S404 TRIM_ARRAY NO
T011 Timestamp in Information Schema NO
T021 BINARY and VARBINARY data types NO
T022 Advanced support for BINARY and VARBINARY data types NO
T023 Compound binary literal NO
T024 Spaces in binary literals NO
T031 BOOLEAN data type YES
T041 Basic LOB data type support NO
T041 Basic LOB data type support 01 BLOB data type NO
@ -350,11 +391,14 @@ T041 Basic LOB data type support 03 POSITION, LENGTH, LOWER, TRIM, UPPER, and SU
T041 Basic LOB data type support 04 Concatenation of LOB data types NO
T041 Basic LOB data type support 05 LOB locator: non-holdable NO
T042 Extended LOB data type support NO
T043 Multiplier T NO
T044 Multiplier P NO
T051 Row types NO
T052 MAX and MIN for row types NO
T053 Explicit aliases for all-fields reference NO
T061 UCS support NO
T071 BIGINT data type YES
T101 Enhanced nullability determiniation NO
T111 Updatable joins, unions, and columns NO
T121 WITH (excluding RECURSIVE) in query expression NO
T122 WITH (excluding RECURSIVE) in subquery NO
@ -369,6 +413,8 @@ T173 Extended LIKE clause in table definition NO
T174 Identity columns NO
T175 Generated columns NO
T176 Sequence generator support NO
T177 Sequence generator support: simple restart option NO
T178 Identity columns: simple restart option NO
T191 Referential action RESTRICT YES
T201 Comparable data types for referential constraints YES
T211 Basic trigger capability NO
@ -381,6 +427,7 @@ T211 Basic trigger capability 06 Support for run-time rules for the interaction
T211 Basic trigger capability 07 TRIGGER privilege YES
T211 Basic trigger capability 08 Multiple triggers for the same event are executed in the order in which they were created in the catalog NO intentionally omitted
T212 Enhanced trigger capability YES
T213 INSTEAD OF triggers NO
T231 Sensitive cursors YES
T241 START TRANSACTION statement YES
T251 SET TRANSACTION statement: LOCAL option NO
@ -388,6 +435,7 @@ T261 Chained transactions NO
T271 Savepoints YES
T272 Enhanced savepoint management NO
T281 SELECT privilege with column granularity NO
T285 Enhanced derived column names NO
T301 Functional dependencies NO
T312 OVERLAY function YES
T321 Basic SQL-invoked routines NO
@ -429,6 +477,11 @@ T601 Local cursor references NO
T611 Elementary OLAP operations NO
T612 Advanced OLAP operations NO
T613 Sampling NO
T614 NTILE function NO
T615 LEAD and LAG functions NO
T616 Null treatment option for LEAD and LAG functions NO
T617 FIRST_VALUE and LAST_VALUE function NO
T618 NTH_VALUE function NO
T621 Enhanced numeric functions NO
T631 IN predicate with one list element NO
T641 Multiple column assignment NO
@ -444,14 +497,17 @@ X013 Distinct types of XML type NO
X014 Attributes of XML type NO
X015 Fields of XML type NO
X016 Persistent XML values YES
X020 XML concatenation YES
X020 XMLConcat YES
X025 XMLCast NO
X030 XMLDocument NO
X031 XMLElement YES
X032 XMLForest YES
X033 XMLRoot YES
X034 XMLAgg YES
X035 XMLAgg: ORDER BY option NO
X036 XMLComment YES
X037 XMLPI YES
X038 XMLText NO
X040 Basic table mapping NO
X041 Basic table mapping: nulls absent YES
X042 Basic table mapping: null as nil YES
X043 Basic table mapping: table as forest YES
@ -470,21 +526,38 @@ X056 Advanced table mapping: data mapping YES
X057 Advanced table mapping: metadata mapping YES
X058 Advanced table mapping: base64 encoding of binary strings YES
X059 Advanced table mapping: hex encoding of binary strings YES
X060 XMLParse: CONTENT option YES
X061 XMLParse: DOCUMENT option YES
X062 XMLParse: explicit WHITESPACE option YES
X070 XMLSerialize: CONTENT option YES
X071 XMLSerialize: DOCUMENT option YES
X060 XMLParse: Character string input and CONTENT option YES
X061 XMLParse: Character string input and DOCUMENT option YES
X065 XMLParse: BLOB input and CONTENT option NO
X066 XMLParse: BLOB input and DOCUMENT option NO
X068 XMLSerialize: BOM NO
X069 XMLSerialize: INDENT NO
X070 XMLSerialize: Character string serialization and CONTENT option YES
X071 XMLSerialize: Character string serialization and DOCUMENT option YES
X072 XMLSerialize: Character string serialization YES
X073 XMLSerialize: BLOB serialization and CONTENT option NO
X074 XMLSerialize: BLOB serialization and DOCUMENT option NO
X075 XMLSerialize: BLOB serialization NO
X076 XMLSerialize: VERSION NO
X077 XMLSerialize: explicit ENCODING option NO
X078 XMLSerialize: explicit XML declaration NO
X080 Namespaces in XML publishing NO
X081 Query-level XML namespace declarations NO
X082 XML namespace declarations in DML NO
X083 XML namespace declarations in DDL NO
X084 XML namespace declarations in compound statements NO
X085 Predefined namespace prefixes NO
X086 XML namespace declarations in XMLTable
X090 XML document predicate YES
X091 XML content predicate NO
X096 XMLExists NO
X100 Host language support for XML: CONTENT option NO
X101 Host language support for XML: DOCUMENT option NO
X110 Host language support for XML: VARCHAR mapping NO
X111 Host language support for XML: CLOB mapping NO
X112 Host language support for XML: BLOB mapping NO
X113 Host language support for XML: STRIP WHITESPACE option NO
X114 Host language support for XML: PRESERVE WHITESPACE option NO
X120 XML parameters in SQL routines YES
X121 XML parameters in external routines YES
X131 Query-level XMLBINARY clause NO
@ -492,3 +565,63 @@ X132 XMLBINARY clause in DML NO
X133 XMLBINARY clause in DDL NO
X134 XMLBINARY clause in compound statements NO
X135 XMLBINARY clause in subqueries NO
X141 IS VALID predicate: data-driven case NO
X142 IS VALID predicate: ACCORDING TO clause NO
X143 IS VALID predicate: ELEMENT clause NO
X144 IS VALID predicate: schema location NO
X145 IS VALID predicate outside check constraints NO
X151 IS VALID predicate with DOCUMENT option NO
X152 IS VALID predicate with CONTENT option NO
X153 IS VALID predicate with SEQUENCE option NO
X155 IS VALID predicate: NAMESPACE without ELEMENT clause NO
X157 IS VALID predicate: NO NAMESPACE with ELEMENT clause NO
X160 Basic Information Schema for registered XML Schemas NO
X161 Advanced Information Schema for registered XML Schemas NO
X170 XML null handling options NO
X171 NIL ON NO CONTENT option NO
X181 XML(DOCUMENT(UNTYPED)) type NO
X182 XML(DOCUMENT(ANY)) type NO
X190 XML(SEQUENCE) type NO
X191 XML(DOCUMENT(XMLSCHEMA)) type NO
X192 XML(CONTENT(XMLSCHEMA)) type NO
X200 XMLQuery NO
X201 XMLQuery: RETURNING CONTENT NO
X202 XMLQuery: RETURNING SEQUENCE NO
X203 XMLQuery: passing a context item NO
X204 XMLQuery: initializing an XQuery variable NO
X205 XMLQuery: EMPTY ON EMPTY option NO
X206 XMLQuery: NULL ON EMPTY option NO
X211 XML 1.1 support NO
X221 XML passing mechanism BY VALUE NO
X222 XML passing mechanism BY REF NO
X231 XML(CONTENT(UNTYPED)) type NO
X232 XML(CONTENT(ANY)) type NO
X241 RETURNING CONTENT in XML publishing NO
X242 RETURNING SEQUENCE in XML publishing NO
X251 Persistent XML values of XML(DOCUMENT(UNTYPED)) type NO
X252 Persistent XML values of XML(DOCUMENT(ANY)) type NO
X253 Persistent XML values of XML(CONTENT(UNTYPED)) type NO
X254 Persistent XML values of XML(CONTENT(ANY)) type NO
X255 Persistent XML values of XML(SEQUENCE) type NO
X256 Persistent XML values of XML(DOCUMENT(XMLSCHEMA)) type NO
X257 Persistent XML values of XML(CONTENT(XMLSCHEMA)) type NO
X260 XML type: ELEMENT clause NO
X261 XML type: NAMESPACE without ELEMENT clause NO
X263 XML type: NO NAMESPACE with ELEMENT clause NO
X264 XML type: schema location NO
X271 XMLValidate: data-driven case NO
X272 XMLValidate: ACCORDING TO clause NO
X273 XMLValidate: ELEMENT clause NO
X274 XMLValidate: schema location NO
X281 XMLValidate: with DOCUMENT option NO
X282 XMLValidate with CONTENT option NO
X283 XMLValidate with SEQUENCE option NO
X284 XMLValidate NAMESPACE without ELEMENT clause NO
X286 XMLValidate: NO NAMESPACE with ELEMENT clause NO
X300 XMLTable NO
X301 XMLTable: derived column list option NO
X302 XMLTable: ordinality column option NO
X303 XMLTable: column default option NO
X304 XMLTable: passing a context item NO
X305 XMLTable: initializing an XQuery variable NO
X400 Name and identifier mapping NO