]> granicus.if.org Git - postgresql/commitdiff
Update feature list for SQL:2008.
authorPeter Eisentraut <peter_e@gmx.net>
Sat, 18 Oct 2008 00:35:32 +0000 (00:35 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Sat, 18 Oct 2008 00:35:32 +0000 (00:35 +0000)
doc/src/sgml/features.sgml
doc/src/sgml/mk_feature_tables.pl
src/backend/catalog/sql_features.txt

index eae4ba5a11b42c445331e4c5535ff7c08fde525c..749a56354076e49485df1019b10cebafb48b0daa 100644 (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>
  <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.
 
  </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
    <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.
index 7b4f45f3de196b5f0ff8bf5fa49049dbd0cfea1d..5dad68b809dae43a4c3027c90337ac7467a75a21 100644 (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;
 
index ba3f3a9046e3414698b98648ef88c50cbcea34f7..0fedc5729b40e0ff71fcf6a496b43bd9e9c03699 100644 (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