summaryrefslogtreecommitdiff
path: root/doc/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2002-11-17 13:17:55 +0000
committerPeter Eisentraut <peter_e@gmx.net>2002-11-17 13:17:55 +0000
commit6a51c593338ec389632c2806e8e53c9b6248bd37 (patch)
tree01243001f79e7db412f83ac9045de5ce427aa8fa /doc/src
parentbf25ad354e48eb423e1fa3e23a854ac869325732 (diff)
downloadpostgresql-6a51c593338ec389632c2806e8e53c9b6248bd37.tar.gz
Revise SQL features list.
Diffstat (limited to 'doc/src')
-rw-r--r--doc/src/sgml/features.sgml1164
1 files changed, 824 insertions, 340 deletions
diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml
index c125c50aad..dca8ee432b 100644
--- a/doc/src/sgml/features.sgml
+++ b/doc/src/sgml/features.sgml
@@ -1,479 +1,600 @@
<!--
-$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7.2.1 2002/11/17 13:17:55 petere Exp $
-->
- <appendix id="features">
- <title>SQL99 Feature List</title>
+<appendix id="features">
+ <title>SQL Conformance</title>
- <para>
- <acronym>SQL92</acronym> defined three feature sets for
- compliance: basic, intermediate, and advanced. Most database
- products claiming <acronym>SQL</acronym> standards compliance were
- compliant at only the basic level, since the entire set of
- intermediate and advanced features was either too voluminous or in
- conflict with legacy behaviors.
+ <para>
+ This section attempts to outline to what extent
+ <productname>PostgreSQL</productname> conforms to the SQL standard.
+ Full compliance to the standard or a complete statement about the
+ compliance to the standard is complicated and not particularly
+ useful, so this section can only give an overview.
</para>
+ <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 one appearing in 1999. That
+ version is refered to as ISO/IEC 9075:1999, or informally as SQL99.
+ The version prior to that was SQL92.
+ <productname>PostgreSQL</productname> development tends to aim for
+ conformance with the latest official version of the standard where
+ such conformance does not contradict traditional features or common
+ sense. At the time of this writing, ballotting is under way for a
+ new revision of the standard, which, if approved, will eventually
+ become the conformance target for future
+ <productname>PostgreSQL</productname> development.
+ </para>
+
+ <para>
+ <acronym>SQL92</acronym> defined three feature sets for conformance:
+ Entry, Intermediate, and Full. Most database products claiming
+ <acronym>SQL</acronym> standard conformance were conforming at only
+ the Entry level, since the entire set of features in the
+ Intermediate and Full levels was either too voluminous or in
+ conflict with legacy behaviors.
+ </para>
+
+ <para>
+ <acronym>SQL99</acronym> defines a large set of individual features
+ rather than the ineffectively broad three levels found in
+ <acronym>SQL92</acronym>. A large subset of these features
+ represents the <quote>core</quote> features, which every conforming
+ SQL implementation must supply. The rest of the features are purely
+ optional. Some optional features are grouped together to form
+ <quote>packages</quote>, which SQL implementations can claim
+ conformance to, thus claiming conformance to particular groups of
+ features.
+ </para>
+
+ <para>
+ The <acronym>SQL99</acronym> standard is also split into 5 parts:
+ Framework, Foundation, Call Level Interface, Persistent Stored
+ Modules, and Host Language Bindings.
+ <productname>PostgreSQL</productname> only covers parts 1, 2, and 5.
+ Part 3 is similar to the ODBC interface, and part 4 is similar to
+ the <application>PL/pgSQL</application> programming language, but
+ exact conformance is not specifically intended in either case.
+ </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 SQL99 which are not yet supported in
+ PostgreSQL. Both of these lists are approximate: There may be minor
+ details that are nonconforming for a feature that is listed as
+ supported, and large parts of an unsupported feature may in fact be
+ implemented. The main body of the documentation always contains the
+ most accurate information about what does and does not work.
+ </para>
+
+ <note>
<para>
- <acronym>SQL99</acronym> defines a large set of individual
- features rather than the ineffectively broad three levels found in
- <acronym>SQL92</acronym>. We provide a list of supported features,
- followed by a list of the features defined in SQL99 which are not
- yet supported in PostgreSQL.
+ Feature codes containing a hyphen are subfeatures. Therefore, if a
+ particular subfeature is not supported, the main feature is listed
+ as unsupported even if some other subfeatures are supported.
</para>
+ </note>
<sect1 id="features-sql99">
<title>Supported Features</title>
<para>
<informaltable>
- <tgroup cols="3">
+ <tgroup cols="4">
<thead>
<row>
<entry>Identifier</entry>
+ <entry>Package</entry>
<entry>Description</entry>
<entry>Comment</entry>
</row>
</thead>
<tbody>
<row>
+ <entry>B012</entry>
+ <entry>Core</entry>
+ <entry>Embedded C</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B021</entry>
+ <entry></entry>
+ <entry>Direct SQL</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>E011</entry>
+ <entry>Core</entry>
<entry>Numeric data types</entry>
<entry></entry>
</row>
<row>
<entry>E011-01</entry>
+ <entry>Core</entry>
<entry>INTEGER and SMALLINT data types</entry>
<entry></entry>
</row>
<row>
<entry>E011-02</entry>
+ <entry>Core</entry>
<entry>REAL, DOUBLE PRECISON, and FLOAT data types</entry>
<entry></entry>
</row>
<row>
<entry>E011-03</entry>
+ <entry>Core</entry>
<entry>DECIMAL and NUMERIC data types</entry>
<entry></entry>
</row>
<row>
<entry>E011-04</entry>
+ <entry>Core</entry>
<entry>Arithmetic operators</entry>
<entry></entry>
</row>
<row>
<entry>E011-05</entry>
+ <entry>Core</entry>
<entry>Numeric comparison</entry>
<entry></entry>
</row>
<row>
<entry>E011-06</entry>
+ <entry>Core</entry>
<entry>Implicit casting among the numeric data types</entry>
<entry></entry>
</row>
<row>
<entry>E021</entry>
+ <entry>Core</entry>
<entry>Character data types</entry>
<entry></entry>
</row>
<row>
<entry>E021-01</entry>
+ <entry>Core</entry>
<entry>CHARACTER data type</entry>
<entry></entry>
</row>
<row>
<entry>E021-02</entry>
+ <entry>Core</entry>
<entry>CHARACTER VARYING data type</entry>
<entry></entry>
</row>
<row>
<entry>E021-03</entry>
+ <entry>Core</entry>
<entry>Character literals</entry>
<entry></entry>
</row>
<row>
<entry>E021-04</entry>
+ <entry>Core</entry>
<entry>CHARACTER_LENGTH function</entry>
<entry></entry>
</row>
<row>
<entry>E021-05</entry>
+ <entry>Core</entry>
<entry>OCTET_LENGTH function</entry>
<entry></entry>
</row>
<row>
<entry>E021-06</entry>
+ <entry>Core</entry>
<entry>SUBSTRING function</entry>
<entry></entry>
</row>
<row>
<entry>E021-07</entry>
+ <entry>Core</entry>
<entry>Character concatenation</entry>
<entry></entry>
</row>
<row>
<entry>E021-08</entry>
+ <entry>Core</entry>
<entry>UPPER and LOWER functions</entry>
<entry></entry>
</row>
<row>
<entry>E021-09</entry>
+ <entry>Core</entry>
<entry>TRIM function</entry>
<entry></entry>
</row>
<row>
<entry>E021-10</entry>
+ <entry>Core</entry>
<entry>Implicit casting among the character data types</entry>
<entry></entry>
</row>
<row>
<entry>E021-11</entry>
+ <entry>Core</entry>
<entry>POSITION function</entry>
<entry></entry>
</row>
<row>
<entry>E011-12</entry>
+ <entry>Core</entry>
<entry>Character comparison</entry>
<entry></entry>
</row>
<row>
<entry>E031</entry>
+ <entry>Core</entry>
<entry>Identifiers</entry>
<entry></entry>
</row>
<row>
<entry>E031-01</entry>
+ <entry>Core</entry>
<entry>Delimited identifiers</entry>
<entry></entry>
</row>
<row>
<entry>E031-02</entry>
+ <entry>Core</entry>
<entry>Lower case identifiers</entry>
<entry></entry>
</row>
<row>
<entry>E031-03</entry>
+ <entry>Core</entry>
<entry>Trailing underscore</entry>
<entry></entry>
</row>
<row>
<entry>E051</entry>
+ <entry>Core</entry>
<entry>Basic query specification</entry>
<entry></entry>
</row>
<row>
<entry>E051-01</entry>
+ <entry>Core</entry>
<entry>SELECT DISTINCT</entry>
<entry></entry>
</row>
<row>
<entry>E051-02</entry>
+ <entry>Core</entry>
<entry>GROUP BY clause</entry>
<entry></entry>
</row>
<row>
<entry>E051-04</entry>
+ <entry>Core</entry>
<entry>GROUP BY can contain columns not in &lt;select list&gt;</entry>
<entry></entry>
</row>
<row>
<entry>E051-05</entry>
+ <entry>Core</entry>
<entry>Select list items can be renamed</entry>
- <entry></entry>
+ <entry>AS is required</entry>
</row>
<row>
<entry>E051-06</entry>
+ <entry>Core</entry>
<entry>HAVING clause</entry>
<entry></entry>
</row>
<row>
<entry>E051-07</entry>
+ <entry>Core</entry>
<entry>Qualified * in select list</entry>
<entry></entry>
</row>
<row>
<entry>E051-08</entry>
+ <entry>Core</entry>
<entry>Correlation names in the FROM clause</entry>
<entry></entry>
</row>
<row>
<entry>E051-09</entry>
+ <entry>Core</entry>
<entry>Rename columns in the FROM clause</entry>
<entry></entry>
</row>
<row>
<entry>E061</entry>
+ <entry>Core</entry>
<entry>Basic predicates and search conditions</entry>
<entry></entry>
</row>
<row>
<entry>E061-01</entry>
+ <entry>Core</entry>
<entry>Comparison predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-02</entry>
+ <entry>Core</entry>
<entry>BETWEEN predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-03</entry>
+ <entry>Core</entry>
<entry>IN predicate with list of values</entry>
<entry></entry>
</row>
<row>
<entry>E061-04</entry>
+ <entry>Core</entry>
<entry>LIKE predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-05</entry>
+ <entry>Core</entry>
<entry>LIKE predicate ESCAPE clause</entry>
<entry></entry>
</row>
<row>
<entry>E061-06</entry>
+ <entry>Core</entry>
<entry>NULL predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-07</entry>
+ <entry>Core</entry>
<entry>Quantified comparison predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-08</entry>
+ <entry>Core</entry>
<entry>EXISTS predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-09</entry>
+ <entry>Core</entry>
<entry>Subqueries in comparison predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-11</entry>
+ <entry>Core</entry>
<entry>Subqueries in IN predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-12</entry>
+ <entry>Core</entry>
<entry>Subqueries in quantified comparison predicate</entry>
<entry></entry>
</row>
<row>
<entry>E061-13</entry>
+ <entry>Core</entry>
<entry>Correlated subqueries</entry>
<entry></entry>
</row>
<row>
<entry>E061-14</entry>
+ <entry>Core</entry>
<entry>Search condition</entry>
<entry></entry>
</row>
<row>
<entry>E071</entry>
+ <entry>Core</entry>
<entry>Basic query expressions</entry>
<entry></entry>
</row>
<row>
<entry>E071-01</entry>
+ <entry>Core</entry>
<entry>UNION DISTINCT table operator</entry>
<entry></entry>
</row>
<row>
<entry>E071-02</entry>
+ <entry>Core</entry>
<entry>UNION ALL table operator</entry>
<entry></entry>
</row>
<row>
<entry>E071-03</entry>
+ <entry>Core</entry>
<entry>EXCEPT DISTINCT table operator</entry>
<entry></entry>
</row>
<row>
<entry>E071-05</entry>
+ <entry>Core</entry>
<entry>Columns combined via table operators need not have
exactly the same data type</entry>
<entry></entry>
</row>
<row>
<entry>E071-06</entry>
+ <entry>Core</entry>
<entry>Table operators in subqueries</entry>
<entry></entry>
</row>
<row>
- <entry>E081</entry>
- <entry>Basic Privileges</entry>
- <entry></entry>
- </row>
- <row>
<entry>E081-01</entry>
+ <entry>Core</entry>
<entry>SELECT privilege</entry>
<entry></entry>
</row>
<row>
<entry>E081-02</entry>
+ <entry>Core</entry>
<entry>DELETE privilege</entry>
<entry></entry>
</row>
<row>
<entry>E081-03</entry>
+ <entry>Core</entry>
<entry>INSERT privilege at the table level</entry>
<entry></entry>
</row>
<row>
<entry>E081-04</entry>
+ <entry>Core</entry>
<entry>UPDATE privilege at the table level</entry>
<entry></entry>
</row>
<row>
<entry>E081-06</entry>
+ <entry>Core</entry>
<entry>REFERENCES privilege at the table level</entry>
<entry></entry>
</row>
<row>
- <entry>E081-08</entry>
- <entry>WITH GRANT OPTION</entry>
- <entry></entry>
- </row>
- <row>
<entry>E091</entry>
+ <entry>Core</entry>
<entry>Set functions</entry>
<entry></entry>
</row>
<row>
<entry>E091-01</entry>
+ <entry>Core</entry>
<entry>AVG</entry>
<entry></entry>
</row>
<row>
<entry>E091-02</entry>
+ <entry>Core</entry>
<entry>COUNT</entry>
<entry></entry>
</row>
<row>
<entry>E091-03</entry>
+ <entry>Core</entry>
<entry>MAX</entry>
<entry></entry>
</row>
<row>
<entry>E091-04</entry>
+ <entry>Core</entry>
<entry>MIN</entry>
<entry></entry>
</row>
<row>
<entry>E091-05</entry>
+ <entry>Core</entry>
<entry>SUM</entry>
<entry></entry>
</row>
<row>
<entry>E091-06</entry>
+ <entry>Core</entry>
<entry>ALL quantifier</entry>
<entry></entry>
</row>
<row>
<entry>E091-07</entry>
+ <entry>Core</entry>
<entry>DISTINCT quantifier</entry>
<entry></entry>
</row>
<row>
<entry>E101</entry>
+ <entry>Core</entry>
<entry>Basic data manipulation</entry>
<entry></entry>
</row>
<row>
<entry>E101-01</entry>
+ <entry>Core</entry>
<entry>INSERT statement</entry>
<entry></entry>
</row>
<row>
<entry>E101-03</entry>
+ <entry>Core</entry>
<entry>Searched UPDATE statement</entry>
<entry></entry>
</row>
<row>
<entry>E101-04</entry>
+ <entry>Core</entry>
<entry>Searched DELETE statement</entry>
<entry></entry>
</row>
<row>
<entry>E111</entry>
+ <entry>Core</entry>
<entry>Single row SELECT statement</entry>
<entry></entry>
</row>
<row>
- <entry>E121</entry>
- <entry>Basic cursor support</entry>
- <entry></entry>
- </row>
- <row>
<entry>E121-01</entry>
+ <entry>Core</entry>
<entry>DECLARE CURSOR</entry>
<entry></entry>
</row>
<row>
<entry>E121-02</entry>
+ <entry>Core</entry>
<entry>ORDER BY columns need not be in select list</entry>
<entry></entry>
</row>
<row>
<entry>E121-03</entry>
+ <entry>Core</entry>
<entry>Value expressions in ORDER BY clause</entry>
<entry></entry>
</row>
<row>
- <entry>E121-04</entry>
- <entry>OPEN statement</entry>
- <entry>(cursor)</entry>
- </row>
- <row>
- <entry>E121-06</entry>
- <entry>Positioned UPDATE statement</entry>
- <entry>(cursor)</entry>
- </row>
- <row>
- <entry>E121-07</entry>
- <entry>Positioned DELETE statement</entry>
- <entry>(cursor)</entry>
- </row>
- <row>
<entry>E121-08</entry>
+ <entry>Core</entry>
<entry>CLOSE statement</entry>
<entry>(cursor)</entry>
</row>
<row>
<entry>E121-10</entry>
+ <entry>Core</entry>
<entry>FETCH statement implicit NEXT</entry>
<entry></entry>
</row>
<row>
<entry>E131</entry>
+ <entry>Core</entry>
<entry>Null value support (nulls in lieu of values)</entry>
<entry></entry>
</row>
<row>
<entry>E141</entry>
+ <entry>Core</entry>
<entry>Basic integrity constraints</entry>
<entry></entry>
</row>
<row>
<entry>E141-01</entry>
+ <entry>Core</entry>
<entry>NOT NULL constraints</entry>
<entry></entry>
</row>
<row>
<entry>E141-02</entry>
+ <entry>Core</entry>
<entry>UNIQUE constraints of NOT NULL columns</entry>
<entry></entry>
</row>
<row>
<entry>E141-03</entry>
+ <entry>Core</entry>
<entry>PRIMARY KEY constraints</entry>
<entry></entry>
</row>
<row>
<entry>E141-04</entry>
+ <entry>Core</entry>
<entry>Basic FOREIGN KEY constraint with the NO ACTION default
for both referential delete action and referential update
action</entry>
@@ -481,161 +602,186 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 pet
</row>
<row>
<entry>E141-06</entry>
+ <entry>Core</entry>
<entry>CHECK constraints</entry>
<entry></entry>
</row>
<row>
<entry>E141-07</entry>
+ <entry>Core</entry>
<entry>Column defaults</entry>
<entry></entry>
</row>
<row>
<entry>E141-08</entry>
+ <entry>Core</entry>
<entry>NOT NULL inferred on PRIMARY KEY</entry>
<entry></entry>
</row>
<row>
<entry>E141-10</entry>
+ <entry>Core</entry>
<entry>Names in a foreign key can be specified in any order</entry>
<entry></entry>
</row>
<row>
<entry>E151</entry>
+ <entry>Core</entry>
<entry>Transaction support</entry>
<entry></entry>
</row>
<row>
<entry>E151-01</entry>
+ <entry>Core</entry>
<entry>COMMIT statement</entry>
<entry></entry>
</row>
<row>
<entry>E151-02</entry>
+ <entry>Core</entry>
<entry>ROLLBACK statement</entry>
<entry></entry>
</row>
<row>
- <entry>E152</entry>
- <entry>Basic SET TRANSACTION statement</entry>
- <entry></entry>
- </row>
- <row>
<entry>E152-01</entry>
+ <entry>Core</entry>
<entry>SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE
clause</entry>
<entry></entry>
</row>
<row>
- <entry>E153</entry>
- <entry>Updatable queries with subqueries</entry>
- <entry></entry>
- </row>
- <row>
<entry>E161</entry>
+ <entry>Core</entry>
<entry>SQL comments using leading double minus</entry>
<entry></entry>
</row>
<row>
<entry>F031</entry>
+ <entry>Core</entry>
<entry>Basic schema manipulation</entry>
<entry></entry>
</row>
<row>
<entry>F031-01</entry>
+ <entry>Core</entry>
<entry>CREATE TABLE statement to create persistent base
tables</entry>
<entry></entry>
</row>
<row>
<entry>F031-02</entry>
+ <entry>Core</entry>
<entry>CREATE VIEW statement</entry>
<entry></entry>
</row>
<row>
<entry>F031-03</entry>
+ <entry>Core</entry>
<entry>GRANT statement</entry>
<entry></entry>
</row>
<row>
<entry>F031-04</entry>
- <entry>ALTER TABLE statement COLUMN clause</entry>
+ <entry>Core</entry>
+ <entry>ALTER TABLE statement: ADD COLUMN clause</entry>
<entry></entry>
</row>
<row>
<entry>F031-13</entry>
- <entry>DROP TABLE statement clause</entry>
+ <entry>Core</entry>
+ <entry>DROP TABLE statement: RESTRICT clause</entry>
<entry></entry>
</row>
<row>
<entry>F031-16</entry>
- <entry>DROP VIEW statement RESTRICT clause</entry>
+ <entry>Core</entry>
+ <entry>DROP VIEW statement: RESTRICT clause</entry>
<entry></entry>
</row>
<row>
- <entry>F031-19</entry>
- <entry>REVOKE statement RESTRICT clause</entry>
+ <entry>F032</entry>
+ <entry></entry>
+ <entry>CASCADE drop behavior</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F033</entry>
+ <entry></entry>
+ <entry>ALTER TABLE statement: DROP COLUMN clause</entry>
<entry></entry>
</row>
<row>
<entry>F041</entry>
+ <entry>Core</entry>
<entry>Basic joined table</entry>
<entry></entry>
</row>
<row>
<entry>F041-01</entry>
+ <entry>Core</entry>
<entry>Inner join (but not necessarily the INNER keyword)</entry>
<entry></entry>
</row>
<row>
<entry>F041-02</entry>
+ <entry>Core</entry>
<entry>INNER keyword</entry>
<entry></entry>
</row>
<row>
<entry>F041-03</entry>
+ <entry>Core</entry>
<entry>LEFT OUTER JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F041-04</entry>
+ <entry>Core</entry>
<entry>RIGHT OUTER JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F041-05</entry>
+ <entry>Core</entry>
<entry>Outer joins can be nested</entry>
<entry></entry>
</row>
<row>
<entry>F041-07</entry>
+ <entry>Core</entry>
<entry>The inner table in a left or right outer join can also be
used in an inner join</entry>
<entry></entry>
</row>
<row>
<entry>F041-08</entry>
+ <entry>Core</entry>
<entry>All comparison operators are supported
(rather than just =)</entry>
<entry></entry>
</row>
<row>
<entry>F051</entry>
+ <entry>Core</entry>
<entry>Basic date and time</entry>
<entry></entry>
</row>
<row>
<entry>F051-01</entry>
+ <entry>Core</entry>
<entry>DATE data type (including support of DATE literal)</entry>
<entry></entry>
</row>
<row>
<entry>F051-02</entry>
+ <entry>Core</entry>
<entry>TIME data type (including support of TIME literal) with
fractional seconds precision of at least 0</entry>
<entry></entry>
</row>
<row>
<entry>F051-03</entry>
+ <entry>Core</entry>
<entry>TIMESTAMP data type (including support of TIMESTAMP
literal) with fractional seconds precision of at least
0 and 6</entry>
@@ -643,644 +789,576 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 pet
</row>
<row>
<entry>F051-04</entry>
- <entry>Comparison predicate on DATE TIMESTAMP data types</entry>
+ <entry>Core</entry>
+ <entry>Comparison predicate on DATE, TIME, and TIMESTAMP data types</entry>
<entry></entry>
</row>
<row>
<entry>F051-05</entry>
+ <entry>Core</entry>
<entry>Explicit CAST between datetime types and character types</entry>
<entry></entry>
</row>
<row>
<entry>F051-06</entry>
+ <entry>Core</entry>
<entry>CURRENT_DATE</entry>
<entry></entry>
</row>
<row>
<entry>F051-07</entry>
+ <entry>Core</entry>
<entry>LOCALTIME</entry>
<entry></entry>
</row>
<row>
<entry>F051-08</entry>
+ <entry>Core</entry>
<entry>LOCALTIMESTAMP</entry>
<entry></entry>
</row>
<row>
+ <entry>F052</entry>
+ <entry>Enhanced datetime facilities</entry>
+ <entry>Intervals and datetime arithmetic</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>F081</entry>
+ <entry>Core</entry>
<entry>UNION and EXCEPT in views</entry>
<entry></entry>
</row>
<row>
+ <entry>F111-02</entry>
+ <entry></entry>
+ <entry>READ COMMITTED isolation level</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>F131</entry>
+ <entry>Core</entry>
<entry>Grouped operations</entry>
<entry></entry>
</row>
<row>
<entry>F131-01</entry>
- <entry>WHERE, GROUP BY and HAVING clauses supported in queries
+ <entry>Core</entry>
+ <entry>WHERE, GROUP BY, and HAVING clauses supported in queries
with grouped views</entry>
<entry></entry>
</row>
<row>
<entry>F131-02</entry>
+ <entry>Core</entry>
<entry>Multiple tables supported in queries with grouped
views</entry>
<entry></entry>
</row>
<row>
<entry>F131-03</entry>
+ <entry>Core</entry>
<entry>Set functions supported in queries with grouped views</entry>
<entry></entry>
</row>
<row>
<entry>F131-04</entry>
+ <entry>Core</entry>
<entry>Subqueries with GROUP BY and HAVING clauses and grouped
views</entry>
<entry></entry>
</row>
<row>
<entry>F131-05</entry>
+ <entry>Core</entry>
<entry>Single row SELECT with GROUP BY and HAVING clauses and
grouped views</entry>
<entry></entry>
</row>
<row>
- <entry>F181</entry>
- <entry>Multiple module support</entry>
- <entry>Allow separate compilation modules in ecpg</entry>
+ <entry>F171</entry>
+ <entry></entry>
+ <entry>Multiple schemas per user</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F191</entry>
+ <entry>Enhanced integrity management</entry>
+ <entry>Referential delete actions</entry>
+ <entry></entry>
</row>
<row>
<entry>F201</entry>
+ <entry>Core</entry>
<entry>CAST function</entry>
<entry></entry>
</row>
<row>
<entry>F221</entry>
+ <entry>Core</entry>
<entry>Explicit defaults</entry>
<entry></entry>
</row>
<row>
+ <entry>F222</entry>
+ <entry></entry>
+ <entry>INSERT statement: DEFAULT VALUES clause</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F251</entry>
+ <entry></entry>
+ <entry>Domain support</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>F261</entry>
+ <entry>Core</entry>
<entry>CASE expression</entry>
<entry></entry>
</row>
<row>
<entry>F261-01</entry>
+ <entry>Core</entry>
<entry>Simple CASE</entry>
<entry></entry>
</row>
<row>
<entry>F261-02</entry>
+ <entry>Core</entry>
<entry>Searched CASE</entry>
<entry></entry>
</row>
<row>
<entry>F261-03</entry>
+ <entry>Core</entry>
<entry>NULLIF</entry>
<entry></entry>
</row>
<row>
<entry>F261-04</entry>
+ <entry>Core</entry>
<entry>COALESCE</entry>
<entry></entry>
</row>
<row>
- <entry>F311</entry>
- <entry>Schema definition statement</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F311-01</entry>
- <entry>CREATE SCHEMA</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F311-02</entry>
- <entry>CREATE TABLE for persistent base tables</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F311-03</entry>
- <entry>CREATE VIEW</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F311-04</entry>
- <entry>CREATE VIEW: WITH CHECK OPTION</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F311-05</entry>
- <entry>GRANT statement</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F471</entry>
- <entry>Scalar subquery values</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F481</entry>
- <entry>Expanded NULL predicate</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S011</entry>
- <entry>Distinct data types</entry>
- <entry></entry>
- </row>
- <row>
- <entry>T321</entry>
- <entry>Basic SQL-invoked routines</entry>
- <entry></entry>
- </row>
- <row>
- <entry>T321-01</entry>
- <entry>User-defined functions with no overloading</entry>
- <entry></entry>
- </row>
- <row>
- <entry>T321-03</entry>
- <entry>Function invocation</entry>
- <entry></entry>
- </row>
- <row>
- <entry>T321-05</entry>
- <entry>RETURN statement</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F032</entry>
- <entry>CASCADE drop behavior</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F034</entry>
- <entry>Extended REVOKE statement</entry>
+ <entry>F271</entry>
<entry></entry>
- </row>
- <row>
- <entry>F034-01</entry>
- <entry>REVOKE statement performed by other than the owner of a
- schema object</entry>
+ <entry>Compound character literals</entry>
<entry></entry>
</row>
<row>
- <entry>F034-02</entry>
- <entry>REVOKE statement: GRANT OPTION FOR clause</entry>
+ <entry>F281</entry>
<entry></entry>
- </row>
- <row>
- <entry>F034-03</entry>
- <entry>REVOKE statement to revoke a privilege that the grantee
- has WITH GRANT OPTION</entry>
+ <entry>LIKE enhancements</entry>
<entry></entry>
</row>
<row>
- <entry>F052</entry>
- <entry>Intervals and datetime arithmetic</entry>
+ <entry>F302</entry>
+ <entry>OLAP facilities</entry>
+ <entry>INTERSECT table operator</entry>
<entry></entry>
</row>
<row>
- <entry>F111</entry>
- <entry>Isolation levels other than SERIALIZABLE</entry>
+ <entry>F302-01</entry>
+ <entry>OLAP facilities</entry>
+ <entry>INTERSECT DISTINCT table operator</entry>
<entry></entry>
</row>
<row>
- <entry>F111-02</entry>
- <entry>READ COMMITTED isolation level</entry>
+ <entry>F302-02</entry>
+ <entry>OLAP facilities</entry>
+ <entry>INTERSECT ALL table operator</entry>
<entry></entry>
</row>
<row>
- <entry>F171</entry>
- <entry>Multiple schemas per user</entry>
+ <entry>F304</entry>
+ <entry>OLAP facilities</entry>
+ <entry>EXCEPT ALL table operator</entry>
<entry></entry>
</row>
<row>
- <entry>F191</entry>
- <entry>Referential delete actions</entry>
+ <entry>F311</entry>
+ <entry>Core</entry>
+ <entry>Schema definition statement</entry>
<entry></entry>
</row>
<row>
- <entry>F222</entry>
- <entry>INSERT statement: DEFAULT VALUES clause</entry>
+ <entry>F311-01</entry>
+ <entry>Core</entry>
+ <entry>CREATE SCHEMA</entry>
<entry></entry>
</row>
<row>
- <entry>F271</entry>
- <entry>Compound character literals</entry>
+ <entry>F311-02</entry>
+ <entry>Core</entry>
+ <entry>CREATE TABLE for persistent base tables</entry>
<entry></entry>
</row>
<row>
- <entry>F281</entry>
- <entry>LIKE enhancements</entry>
+ <entry>F311-03</entry>
+ <entry>Core</entry>
+ <entry>CREATE VIEW</entry>
<entry></entry>
</row>
<row>
- <entry>F302</entry>
- <entry>INTERSECT table operator</entry>
+ <entry>F311-05</entry>
+ <entry>Core</entry>
+ <entry>GRANT statement</entry>
<entry></entry>
</row>
<row>
- <entry>F302-01</entry>
- <entry>INTERSECT DISTINCT table operator</entry>
+ <entry>F321</entry>
<entry></entry>
- </row>
- <row>
- <entry>F302-02</entry>
- <entry>INTERSECT ALL table operator</entry>
+ <entry>User authorization</entry>
<entry></entry>
</row>
<row>
- <entry>F304</entry>
- <entry>EXCEPT ALL table operator</entry>
+ <entry>F361</entry>
<entry></entry>
- </row>
- <row>
- <entry>F321</entry>
- <entry>User authorization</entry>
+ <entry>Subprogram support</entry>
<entry></entry>
</row>
<row>
- <entry>F341</entry>
- <entry>Usage tables</entry>
+ <entry>F381</entry>
<entry></entry>
- </row>
- <row>
- <entry>F361</entry>
- <entry>Subprogram support</entry>
+ <entry>Extended schema manipulation</entry>
<entry></entry>
</row>
<row>
<entry>F381-01</entry>
+ <entry></entry>
<entry>ALTER TABLE statement: ALTER COLUMN clause</entry>
<entry></entry>
</row>
<row>
<entry>F381-02</entry>
+ <entry></entry>
<entry>ALTER TABLE statement: ADD CONSTRAINT clause</entry>
<entry></entry>
</row>
<row>
<entry>F381-03</entry>
+ <entry></entry>
<entry>ALTER TABLE statement: DROP CONSTRAINT clause</entry>
<entry></entry>
</row>
<row>
<entry>F391</entry>
+ <entry></entry>
<entry>Long identifiers</entry>
<entry></entry>
</row>
<row>
<entry>F401</entry>
+ <entry>OLAP facilities</entry>
<entry>Extended joined table</entry>
<entry></entry>
</row>
<row>
<entry>F401-01</entry>
+ <entry>OLAP facilities</entry>
<entry>NATURAL JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F401-02</entry>
+ <entry>OLAP facilities</entry>
<entry>FULL OUTER JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F401-03</entry>
+ <entry>OLAP facilities</entry>
<entry>UNION JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F401-04</entry>
+ <entry>OLAP facilities</entry>
<entry>CROSS JOIN</entry>
<entry></entry>
</row>
<row>
<entry>F411</entry>
+ <entry>Enhanced datetime facilities</entry>
<entry>Time zone specification</entry>
<entry></entry>
</row>
<row>
- <entry>F431</entry>
- <entry>Read-only scrollable cursors</entry>
+ <entry>F421</entry>
+ <entry></entry>
+ <entry>National character</entry>
<entry></entry>
</row>
<row>
<entry>F431-01</entry>
+ <entry></entry>
<entry>FETCH with explicit NEXT</entry>
<entry></entry>
</row>
<row>
- <entry>F431-02</entry>
- <entry>FETCH FIRST</entry>
+ <entry>F431-04</entry>
<entry></entry>
- </row>
- <row>
- <entry>F431-03</entry>
- <entry>FETCH LAST</entry>
+ <entry>FETCH PRIOR</entry>
<entry></entry>
</row>
<row>
- <entry>F431-04</entry>
- <entry>FETCH PRIOR</entry>
+ <entry>F431-06</entry>
+ <entry></entry>
+ <entry>FETCH RELATIVE</entry>
<entry></entry>
</row>
<row>
- <entry>F431-05</entry>
- <entry>FETCH ABSOLUTE</entry>
+ <entry>F441</entry>
+ <entry></entry>
+ <entry>Extended set function support</entry>
<entry></entry>
</row>
<row>
- <entry>F431-06</entry>
- <entry>FETCH RELATIVE</entry>
+ <entry>F471</entry>
+ <entry>Core</entry>
+ <entry>Scalar subquery values</entry>
<entry></entry>
</row>
<row>
- <entry>F461</entry>
- <entry>Named character sets</entry>
+ <entry>F481</entry>
+ <entry>Core</entry>
+ <entry>Expanded NULL predicate</entry>
<entry></entry>
</row>
<row>
<entry>F491</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Constraint management</entry>
<entry></entry>
</row>
<row>
<entry>F511</entry>
+ <entry></entry>
<entry>BIT data type</entry>
<entry></entry>
</row>
<row>
<entry>F531</entry>
+ <entry></entry>
<entry>Temporary tables</entry>
<entry></entry>
</row>
<row>
<entry>F555</entry>
+ <entry>Enhanced datetime facilities</entry>
<entry>Enhanced seconds precision</entry>
<entry></entry>
</row>
<row>
<entry>F561</entry>
+ <entry></entry>
<entry>Full value expressions</entry>
<entry></entry>
</row>
<row>
<entry>F571</entry>
+ <entry></entry>
<entry>Truth value tests</entry>
<entry></entry>
</row>
<row>
<entry>F591</entry>
+ <entry>OLAP facilities</entry>
<entry>Derived tables</entry>
<entry></entry>
</row>
<row>
<entry>F611</entry>
- <entry>Indicator data types</entry>
<entry></entry>
- </row>
- <row>
- <entry>F641</entry>
- <entry>Row and table constructors</entry>
+ <entry>Indicator data types</entry>
<entry></entry>
</row>
<row>
<entry>F651</entry>
- <entry>Catalog name qualifiers</entry>
<entry></entry>
- </row>
- <row>
- <entry>F661</entry>
- <entry>Simple tables</entry>
+ <entry>Catalog name qualifiers</entry>
<entry></entry>
</row>
<row>
<entry>F701</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Referential update actions</entry>
<entry></entry>
</row>
<row>
- <entry>F741</entry>
- <entry>Referential MATCH types</entry>
- <entry></entry>
- </row>
- <row>
<entry>F761</entry>
- <entry>Session management</entry>
<entry></entry>
- </row>
- <row>
- <entry>F771</entry>
- <entry>Connection management</entry>
+ <entry>Session management</entry>
<entry></entry>
</row>
<row>
<entry>F791</entry>
- <entry>Insensitive cursors</entry>
- <entry></entry>
- </row>
- <row>
- <entry>F831</entry>
- <entry>Full cursor update</entry>
<entry></entry>
- </row>
- <row>
- <entry>F831-01</entry>
- <entry>Updatable scrollable cursors</entry>
+ <entry>Insensitive cursors</entry>
<entry></entry>
</row>
<row>
- <entry>F831-02</entry>
- <entry>Updatable ordered cursors</entry>
+ <entry>F801</entry>
<entry></entry>
- </row>
- <row>
- <entry>S051</entry>
- <entry>Create table of type</entry>
+ <entry>Full set function</entry>
<entry></entry>
</row>
<row>
<entry>S071</entry>
+ <entry>Enhanced object support</entry>
<entry>SQL paths in function and type name resolution</entry>
<entry></entry>
</row>
<row>
- <entry>S091</entry>
- <entry>Basic array support</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S091-01</entry>
- <entry>Arrays of built-in data types</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S092</entry>
- <entry>Arrays of user-defined types</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S151</entry>
- <entry>Type predicate</entry>
- <entry>IS OF</entry>
- </row>
- <row>
- <entry>S201</entry>
- <entry>SQL routines on arrays</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S201-01</entry>
- <entry>Array parameters</entry>
- <entry></entry>
- </row>
- <row>
- <entry>S201-02</entry>
- <entry>Array as result type of functions</entry>
+ <entry>S111</entry>
+ <entry>Enhanced object support</entry>
+ <entry>ONLY in query expressions</entry>
<entry></entry>
</row>
<row>
<entry>S211</entry>
+ <entry>Enhanced object support, SQL/MM support</entry>
<entry>User-defined cast functions</entry>
- <entry>CREATE CAST(type AS type)</entry>
+ <entry></entry>
</row>
<row>
<entry>T031</entry>
+ <entry></entry>
<entry>BOOLEAN data type</entry>
<entry></entry>
</row>
<row>
<entry>T141</entry>
+ <entry></entry>
<entry>SIMILAR predicate</entry>
<entry></entry>
</row>
<row>
<entry>T151</entry>
+ <entry></entry>
<entry>DISTINCT predicate</entry>
<entry></entry>
</row>
<row>
<entry>T191</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Referential action RESTRICT</entry>
<entry></entry>
</row>
<row>
<entry>T201</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Comparable data types for referential constraints</entry>
<entry></entry>
</row>
<row>
- <entry>T211</entry>
- <entry>Basic trigger capability</entry>
- <entry></entry>
- </row>
- <row>
<entry>T211-01</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Triggers activated on UPDATE, INSERT, or DELETE of one
base table</entry>
<entry></entry>
</row>
<row>
<entry>T211-02</entry>
+ <entry>Enhanced integrity management</entry>
<entry>BEFORE triggers</entry>
<entry></entry>
</row>
<row>
<entry>T211-03</entry>
+ <entry>Enhanced integrity management</entry>
<entry>AFTER triggers</entry>
<entry></entry>
</row>
<row>
<entry>T211-04</entry>
+ <entry>Enhanced integrity management</entry>
<entry>FOR EACH ROW triggers</entry>
<entry></entry>
</row>
<row>
- <entry>T211-08</entry>
- <entry>Multiple triggers for the same the event are executed in
- the order in which they were created</entry>
- <entry></entry>
- </row>
- <row>
- <entry>T212</entry>
- <entry>Enhanced trigger capability</entry>
+ <entry>T211-07</entry>
+ <entry>Enhanced integrity management</entry>
+ <entry>TRIGGER privilege</entry>
<entry></entry>
</row>
<row>
<entry>T231</entry>
+ <entry></entry>
<entry>SENSITIVE cursors</entry>
<entry></entry>
</row>
<row>
<entry>T241</entry>
+ <entry></entry>
<entry>START TRANSACTION statement</entry>
<entry></entry>
</row>
<row>
- <entry>T251</entry>
- <entry>SET TRANSACTION statement: LOCAL option</entry>
+ <entry>T312</entry>
+ <entry></entry>
+ <entry>OVERLAY function</entry>
<entry></entry>
</row>
<row>
- <entry>T312</entry>
- <entry>OVERLAY function</entry>
+ <entry>T321-01</entry>
+ <entry>Core</entry>
+ <entry>User-defined functions with no overloading</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>T321-03</entry>
+ <entry>Core</entry>
+ <entry>Function invocation</entry>
<entry></entry>
</row>
<row>
<entry>T322</entry>
+ <entry>PSM, SQL/MM support</entry>
<entry>Overloading of SQL-invoked functions and procedures</entry>
<entry></entry>
</row>
<row>
<entry>T323</entry>
+ <entry></entry>
<entry>Explicit security for external routines</entry>
<entry></entry>
</row>
<row>
<entry>T351</entry>
- <entry>Bracketed SQL comments (/*...*/ comments)</entry>
<entry></entry>
- </row>
- <row>
- <entry>T401</entry>
- <entry>INSERT into a cursor</entry>
+ <entry>Bracketed SQL comments (/*...*/ comments)</entry>
<entry></entry>
</row>
<row>
<entry>T441</entry>
- <entry>ABS and MOD functions</entry>
<entry></entry>
- </row>
- <row>
- <entry>T461</entry>
- <entry>Symmetric BETWEEN predicate</entry>
+ <entry>ABS and MOD functions</entry>
<entry></entry>
</row>
<row>
<entry>T501</entry>
+ <entry></entry>
<entry>Enhanced EXISTS predicate</entry>
<entry></entry>
</row>
<row>
<entry>T551</entry>
- <entry>Optional key words for default syntax</entry>
<entry></entry>
- </row>
- <row>
- <entry>T571</entry>
- <entry>Array-returning external SQL-invoked functions</entry>
+ <entry>Optional key words for default syntax</entry>
<entry></entry>
</row>
<row>
<entry>T581</entry>
+ <entry></entry>
<entry>Regular expression substring function</entry>
<entry></entry>
</row>
<row>
<entry>T591</entry>
+ <entry></entry>
<entry>UNIQUE constraints of possibly null columns</entry>
<entry></entry>
</row>
@@ -1300,522 +1378,927 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 pet
functionality is available.
<informaltable>
- <tgroup cols="3">
+ <tgroup cols="4">
<thead>
<row>
<entry>Identifier</entry>
+ <entry>Package</entry>
<entry>Description</entry>
<entry>Comment</entry>
</row>
</thead>
<tbody>
<row>
+ <entry>B011</entry>
+ <entry>Core</entry>
+ <entry>Embedded Ada</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B013</entry>
+ <entry>Core</entry>
+ <entry>Embedded COBOL</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B014</entry>
+ <entry>Core</entry>
+ <entry>Embedded Fortran</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B015</entry>
+ <entry>Core</entry>
+ <entry>Embedded MUMPS</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B016</entry>
+ <entry>Core</entry>
+ <entry>Embedded Pascal</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B017</entry>
+ <entry>Core</entry>
+ <entry>Embedded PL/I</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B031</entry>
+ <entry></entry>
+ <entry>Basic dynamic SQL</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B032</entry>
+ <entry></entry>
+ <entry>Extended dynamic SQL</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B032-1</entry>
+ <entry></entry>
+ <entry>&lt;describe input&gt; statement</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B041</entry>
+ <entry></entry>
+ <entry>Extensions to embedded SQL exception declarations</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>B051</entry>
+ <entry></entry>
+ <entry>Enhanced execution rights</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>E081</entry>
+ <entry>Core</entry>
+ <entry>Basic Privileges</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>E081-05</entry>
+ <entry>Core</entry>
<entry>UPDATE privilege at the column level</entry>
<entry></entry>
</row>
<row>
<entry>E081-07</entry>
+ <entry>Core</entry>
<entry>REFERENCES privilege at the column level</entry>
<entry></entry>
</row>
<row>
+ <entry>E081-08</entry>
+ <entry>Core</entry>
+ <entry>WITH GRANT OPTION</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>E121</entry>
+ <entry>Core</entry>
+ <entry>Basic cursor support</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>E121-04</entry>
+ <entry>Core</entry>
+ <entry>OPEN statement</entry>
+ <entry>(cursor)</entry>
+ </row>
+ <row>
+ <entry>E121-06</entry>
+ <entry>Core</entry>
+ <entry>Positioned UPDATE statement</entry>
+ <entry>(cursor)</entry>
+ </row>
+ <row>
+ <entry>E121-07</entry>
+ <entry>Core</entry>
+ <entry>Positioned DELETE statement</entry>
+ <entry>(cursor)</entry>
+ </row>
+ <row>
<entry>E121-17</entry>
+ <entry>Core</entry>
<entry>WITH HOLD cursors</entry>
- <entry>Cursor stays open across transactions</entry>
+ <entry>Cursor to stay open across transactions</entry>
+ </row>
+ <row>
+ <entry>E152</entry>
+ <entry>Core</entry>
+ <entry>Basic SET TRANSACTION statement</entry>
+ <entry></entry>
</row>
<row>
<entry>E152-02</entry>
+ <entry>Core</entry>
<entry>SET TRANSACTION statement: READ ONLY and READ WRITE
clauses</entry>
<entry>Syntax accepted; READ ONLY not supported</entry>
</row>
<row>
+ <entry>E153</entry>
+ <entry>Core</entry>
+ <entry>Updatable queries with subqueries</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>E171</entry>
+ <entry>Core</entry>
<entry>SQLSTATE support</entry>
<entry></entry>
</row>
<row>
+ <entry>F181</entry>
+ <entry></entry>
+ <entry>Multiple module support</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>E182</entry>
+ <entry>Core</entry>
<entry>Module language</entry>
- <entry>Alternate implementation</entry>
+ <entry></entry>
</row>
<row>
<entry>F021</entry>
+ <entry>Core</entry>
<entry>Basic information schema</entry>
<entry></entry>
</row>
<row>
<entry>F021-01</entry>
+ <entry>Core</entry>
<entry>COLUMNS view</entry>
<entry></entry>
</row>
<row>
<entry>F021-02</entry>
+ <entry>Core</entry>
<entry>TABLES view</entry>
<entry></entry>
</row>
<row>
<entry>F021-03</entry>
+ <entry>Core</entry>
<entry>VIEWS view</entry>
<entry></entry>
</row>
<row>
<entry>F021-04</entry>
+ <entry>Core</entry>
<entry>TABLE_CONSTRAINTS view</entry>
<entry></entry>
</row>
<row>
<entry>F021-05</entry>
+ <entry>Core</entry>
<entry>REFERENTIAL_CONSTRAINTS view</entry>
<entry></entry>
</row>
<row>
<entry>F021-06</entry>
+ <entry>Core</entry>
<entry>CHECK_CONSTRAINTS view</entry>
<entry></entry>
</row>
<row>
- <entry>F033</entry>
- <entry>ALTER TABLE statement: DROP COLUMN clause</entry>
- <entry>Syntax accepted</entry>
+ <entry>F031-19</entry>
+ <entry>Core</entry>
+ <entry>REVOKE statement: RESTRICT clause</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F034</entry>
+ <entry></entry>
+ <entry>Extended REVOKE statement</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F034-01</entry>
+ <entry></entry>
+ <entry>REVOKE statement performed by other than the owner of a
+ schema object</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F034-02</entry>
+ <entry></entry>
+ <entry>REVOKE statement: GRANT OPTION FOR clause</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F034-03</entry>
+ <entry></entry>
+ <entry>REVOKE statement to revoke a privilege that the grantee
+ has WITH GRANT OPTION</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F111</entry>
+ <entry></entry>
+ <entry>Isolation levels other than SERIALIZABLE</entry>
+ <entry></entry>
</row>
<row>
<entry>F111-01</entry>
+ <entry></entry>
<entry>READ UNCOMMITTED isolation level</entry>
<entry></entry>
</row>
<row>
<entry>F111-03</entry>
+ <entry></entry>
<entry>REPEATABLE READ isolation level</entry>
<entry></entry>
</row>
<row>
<entry>F121</entry>
+ <entry></entry>
<entry>Basic diagnostics management</entry>
<entry></entry>
</row>
<row>
<entry>F121-01</entry>
+ <entry></entry>
<entry>GET DIAGNOSTICS statement</entry>
<entry></entry>
</row>
<row>
<entry>F121-02</entry>
+ <entry></entry>
<entry>SET TRANSACTION statement: DIAGNOSTICS SIZE clause</entry>
<entry></entry>
</row>
<row>
<entry>F231</entry>
+ <entry></entry>
<entry>Privilege Tables</entry>
<entry></entry>
</row>
<row>
<entry>F231-01</entry>
+ <entry></entry>
<entry>TABLE_PRIVILEGES view</entry>
<entry></entry>
</row>
<row>
<entry>F231-02</entry>
+ <entry></entry>
<entry>COLUMN_PRIVILEGES view</entry>
<entry></entry>
</row>
<row>
<entry>F231-03</entry>
+ <entry></entry>
<entry>USAGE_PRIVILEGES view</entry>
<entry></entry>
</row>
<row>
- <entry>F251</entry>
- <entry>Domain support</entry>
- <entry>Alternate implementation</entry>
- </row>
- <row>
<entry>F291</entry>
+ <entry></entry>
<entry>UNIQUE predicate</entry>
<entry></entry>
</row>
<row>
<entry>F301</entry>
+ <entry></entry>
<entry>CORRESPONDING in query expressions</entry>
<entry></entry>
</row>
<row>
- <entry>F381</entry>
- <entry>Extended schema manipulation</entry>
+ <entry>F311-04</entry>
+ <entry>Core</entry>
+ <entry>CREATE VIEW: WITH CHECK OPTION</entry>
<entry></entry>
</row>
<row>
- <entry>F421</entry>
- <entry>National character</entry>
- <entry>Syntax accepted</entry>
+ <entry>F341</entry>
+ <entry></entry>
+ <entry>Usage tables</entry>
+ <entry></entry>
</row>
<row>
- <entry>F441</entry>
- <entry>Extended set function support</entry>
+ <entry>F431</entry>
+ <entry></entry>
+ <entry>Read-only scrollable cursors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F431-02</entry>
+ <entry></entry>
+ <entry>FETCH FIRST</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F431-03</entry>
+ <entry></entry>
+ <entry>FETCH LAST</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F431-05</entry>
+ <entry></entry>
+ <entry>FETCH ABSOLUTE</entry>
<entry></entry>
</row>
<row>
<entry>F451</entry>
+ <entry></entry>
<entry>Character set definition</entry>
- <entry>Alternate implementation</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F461</entry>
+ <entry></entry>
+ <entry>Named character sets</entry>
+ <entry></entry>
</row>
<row>
<entry>F501</entry>
+ <entry>Core</entry>
<entry>Features and conformance views</entry>
<entry></entry>
</row>
<row>
<entry>F501-01</entry>
+ <entry>Core</entry>
<entry>SQL_FEATURES view</entry>
<entry></entry>
</row>
<row>
<entry>F501-02</entry>
+ <entry>Core</entry>
<entry>SQL_SIZING view</entry>
<entry></entry>
</row>
<row>
<entry>F501-03</entry>
+ <entry>Core</entry>
<entry>SQL_LANGUAGES view</entry>
<entry></entry>
</row>
<row>
<entry>F502</entry>
+ <entry></entry>
<entry>Enhanced documentation tables</entry>
<entry></entry>
</row>
<row>
<entry>F502-01</entry>
+ <entry></entry>
<entry>SQL_SIZING_PROFILES view</entry>
<entry></entry>
</row>
<row>
<entry>F502-02</entry>
+ <entry></entry>
<entry>SQL_IMPLEMENTATION_INFO view</entry>
<entry></entry>
</row>
<row>
<entry>F502-03</entry>
+ <entry></entry>
<entry>SQL_PACKAGES view</entry>
<entry></entry>
</row>
<row>
<entry>F521</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Assertions</entry>
<entry></entry>
</row>
<row>
+ <entry>F641</entry>
+ <entry>OLAP facilities</entry>
+ <entry>Row and table constructors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F661</entry>
+ <entry></entry>
+ <entry>Simple tables</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>F671</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Subqueries in CHECK</entry>
- <entry></entry>
+ <entry>intentionally omitted</entry>
</row>
<row>
<entry>F691</entry>
+ <entry></entry>
<entry>Collation and translation</entry>
- <entry>Alternate implementation</entry>
+ <entry></entry>
</row>
<row>
<entry>F711</entry>
+ <entry></entry>
<entry>ALTER domain</entry>
<entry></entry>
</row>
<row>
<entry>F721</entry>
- <entry>Deferrable constraints</entry>
<entry></entry>
+ <entry>Deferrable constraints</entry>
+ <entry>foreign keys only</entry>
</row>
<row>
<entry>F731</entry>
+ <entry></entry>
<entry>INSERT column privileges</entry>
<entry></entry>
</row>
<row>
+ <entry>F741</entry>
+ <entry></entry>
+ <entry>Referential MATCH types</entry>
+ <entry>no partial match yet</entry>
+ </row>
+ <row>
<entry>F751</entry>
+ <entry></entry>
<entry>View CHECK enhancements</entry>
<entry></entry>
</row>
<row>
- <entry>F781</entry>
- <entry>Self-referencing operations</entry>
+ <entry>F771</entry>
+ <entry></entry>
+ <entry>Connection management</entry>
<entry></entry>
</row>
<row>
- <entry>F801</entry>
- <entry>Full set function</entry>
- <entry>XXX May have this already</entry>
+ <entry>F781</entry>
+ <entry></entry>
+ <entry>Self-referencing operations</entry>
+ <entry></entry>
</row>
<row>
<entry>F811</entry>
+ <entry></entry>
<entry>Extended flagging</entry>
<entry></entry>
</row>
<row>
<entry>F812</entry>
+ <entry>Core</entry>
<entry>Basic flagging</entry>
<entry></entry>
</row>
<row>
<entry>F813</entry>
+ <entry></entry>
<entry>Extended flagging for "Core SQL Flagging" and "Catalog
Lookup" only</entry>
<entry></entry>
</row>
<row>
<entry>F821</entry>
+ <entry></entry>
<entry>Local table references</entry>
<entry></entry>
</row>
<row>
+ <entry>F831</entry>
+ <entry></entry>
+ <entry>Full cursor update</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F831-01</entry>
+ <entry></entry>
+ <entry>Updatable scrollable cursors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>F831-02</entry>
+ <entry></entry>
+ <entry>Updatable ordered cursors</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>S011</entry>
+ <entry>Core</entry>
+ <entry>Distinct data types</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>S011-01</entry>
+ <entry>Core</entry>
<entry>USER_DEFINED_TYPES view</entry>
<entry></entry>
</row>
<row>
<entry>S023</entry>
+ <entry>Basic object support, SQL/MM support</entry>
<entry>Basic structured types</entry>
- <entry>Alternate implementation</entry>
+ <entry></entry>
</row>
<row>
- <entry>S024</entry>
+ <entry>S024, SQL/MM support</entry>
+ <entry>Enhanced object support</entry>
<entry>Enhanced structured types</entry>
- <entry>Alternate implementation</entry>
+ <entry></entry>
</row>
<row>
<entry>S041</entry>
+ <entry>Basic object support</entry>
<entry>Basic reference types</entry>
<entry></entry>
</row>
<row>
<entry>S043</entry>
+ <entry>Enhanced object support</entry>
<entry>Enhanced reference types</entry>
<entry></entry>
</row>
<row>
+ <entry>S051</entry>
+ <entry>Basic object support</entry>
+ <entry>Create table of type</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>S081</entry>
+ <entry>Enhanced object support</entry>
<entry>Subtables</entry>
<entry></entry>
</row>
<row>
+ <entry>S091</entry>
+ <entry>SQL/MM support</entry>
+ <entry>Basic array support</entry>
+ <entry>PostgreSQL arrays are different</entry>
+ </row>
+ <row>
+ <entry>S091-01</entry>
+ <entry>SQL/MM support</entry>
+ <entry>Arrays of built-in data types</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>S091-02</entry>
+ <entry>SQL/MM support</entry>
<entry>Arrays of distinct types</entry>
<entry></entry>
</row>
<row>
<entry>S091-03</entry>
+ <entry>SQL/MM support</entry>
<entry>Array expressions</entry>
<entry></entry>
</row>
<row>
+ <entry>S092</entry>
+ <entry>SQL/MM support</entry>
+ <entry>Arrays of user-defined types</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>S094</entry>
+ <entry></entry>
<entry>Arrays of reference types</entry>
<entry></entry>
</row>
<row>
- <entry>S111</entry>
- <entry>ONLY in query expressions</entry>
- <entry></entry>
+ <entry>S151</entry>
+ <entry>Basic object support</entry>
+ <entry>Type predicate</entry>
+ <entry>IS OF</entry>
</row>
<row>
<entry>S161</entry>
+ <entry>Enhanced object support</entry>
<entry>Subtype treatment</entry>
<entry>TREAT(expr AS type)</entry>
</row>
<row>
+ <entry>S201</entry>
+ <entry></entry>
+ <entry>SQL routines on arrays</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>S201-01</entry>
+ <entry></entry>
+ <entry>Array parameters</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>S201-02</entry>
+ <entry></entry>
+ <entry>Array as result type of functions</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>S231</entry>
+ <entry>Enhanced object support</entry>
<entry>Structured type locators</entry>
<entry></entry>
</row>
<row>
<entry>S232</entry>
+ <entry></entry>
<entry>Array locators</entry>
<entry></entry>
</row>
<row>
<entry>S241</entry>
+ <entry>Enhanced object support</entry>
<entry>Transform functions</entry>
<entry></entry>
</row>
<row>
<entry>S251</entry>
+ <entry></entry>
<entry>User-defined orderings</entry>
<entry>CREATE ORDERING FOR</entry>
</row>
<row>
<entry>S261</entry>
+ <entry></entry>
<entry>Specific type method</entry>
<entry></entry>
</row>
<row>
<entry>T011</entry>
+ <entry></entry>
<entry>Timestamp in Information Schema</entry>
<entry></entry>
</row>
<row>
<entry>T041</entry>
+ <entry>Basic object support</entry>
<entry>Basic LOB data type support</entry>
<entry></entry>
</row>
<row>
<entry>T041-01</entry>
+ <entry>Basic object support</entry>
<entry>BLOB data type</entry>
<entry></entry>
</row>
<row>
<entry>T041-02</entry>
+ <entry>Basic object support</entry>
<entry>CLOB data type</entry>
<entry></entry>
</row>
<row>
<entry>T041-03</entry>
+ <entry>Basic object support</entry>
<entry>POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING
functions for LOB data types</entry>
<entry></entry>
</row>
<row>
<entry>T041-04</entry>
+ <entry>Basic object support</entry>
<entry>Concatenation of LOB data types</entry>
<entry></entry>
</row>
<row>
<entry>T041-05</entry>
+ <entry>Basic object support</entry>
<entry>LOB locator: non-holdable</entry>
<entry></entry>
</row>
<row>
<entry>T042</entry>
+ <entry></entry>
<entry>Extended LOB data type support</entry>
<entry></entry>
</row>
<row>
<entry>T051</entry>
+ <entry></entry>
<entry>Row types</entry>
<entry></entry>
</row>
<row>
<entry>T111</entry>
+ <entry></entry>
<entry>Updatable joins, unions, and columns</entry>
<entry></entry>
</row>
<row>
<entry>T121</entry>
+ <entry></entry>
<entry>WITH (excluding RECURSIVE) in query expression</entry>
<entry></entry>
</row>
<row>
<entry>T131</entry>
+ <entry></entry>
<entry>Recursive query</entry>
<entry></entry>
</row>
<row>
<entry>T171</entry>
+ <entry></entry>
<entry>LIKE clause in table definition</entry>
<entry>CREATE TABLE T1 (LIKE T2)</entry>
</row>
<row>
+ <entry>T211</entry>
+ <entry>Enhanced integrity management, Active database</entry>
+ <entry>Basic trigger capability</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T211-05</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Ability to specify a search condition that must be true
before the trigger is invoked</entry>
<entry></entry>
</row>
<row>
<entry>T211-06</entry>
+ <entry>Enhanced integrity management</entry>
<entry>Support for run-time rules for the interaction of triggers
and constraints</entry>
<entry></entry>
</row>
<row>
- <entry>T211-07</entry>
- <entry>TRIGGER privilege</entry>
+ <entry>T211-08</entry>
+ <entry>Enhanced integrity management</entry>
+ <entry>Multiple triggers for the same the event are executed in
+ the order in which they were created</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>T212</entry>
+ <entry>Enhanced integrity management</entry>
+ <entry>Enhanced trigger capability</entry>
+ <entry></entry>
+ </row>
+ <row>
+ <entry>T251</entry>
+ <entry></entry>
+ <entry>SET TRANSACTION statement: LOCAL option</entry>
<entry></entry>
</row>
<row>
<entry>T261</entry>
+ <entry></entry>
<entry>Chained transactions</entry>
<entry></entry>
</row>
<row>
<entry>T271</entry>
+ <entry></entry>
<entry>Savepoints</entry>
<entry></entry>
</row>
<row>
<entry>T281</entry>
+ <entry></entry>
<entry>SELECT privilege with column granularity</entry>
<entry></entry>
</row>
<row>
<entry>T301</entry>
+ <entry></entry>
<entry>Functional Dependencies</entry>
<entry></entry>
</row>
<row>
+ <entry>T321</entry>
+ <entry>Core</entry>
+ <entry>Basic SQL-invoked routines</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T321-02</entry>
+ <entry>Core</entry>
<entry>User-defined stored procedures with no overloading</entry>
<entry></entry>
</row>
<row>
<entry>T321-04</entry>
+ <entry>Core</entry>
<entry>CALL statement</entry>
<entry></entry>
</row>
<row>
+ <entry>T321-05</entry>
+ <entry>Core</entry>
+ <entry>RETURN statement</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T321-06</entry>
+ <entry>Core</entry>
<entry>ROUTINES view</entry>
<entry></entry>
</row>
<row>
<entry>T321-07</entry>
+ <entry>Core</entry>
<entry>PARAMETERS view</entry>
<entry></entry>
</row>
<row>
<entry>T331</entry>
+ <entry></entry>
<entry>Basic roles</entry>
<entry></entry>
</row>
<row>
<entry>T332</entry>
+ <entry></entry>
<entry>Extended roles</entry>
<entry></entry>
</row>
<row>
+ <entry>T401</entry>
+ <entry></entry>
+ <entry>INSERT into a cursor</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T411</entry>
+ <entry></entry>
<entry>UPDATE statement: SET ROW option</entry>
<entry></entry>
</row>
<row>
<entry>T431</entry>
+ <entry>OLAP facilities</entry>
<entry>CUBE and ROLLUP operations</entry>
<entry></entry>
</row>
<row>
+ <entry>T461</entry>
+ <entry></entry>
+ <entry>Symmetric BETWEEN predicate</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T471</entry>
+ <entry></entry>
<entry>Result sets return value</entry>
<entry></entry>
</row>
<row>
<entry>T491</entry>
+ <entry></entry>
<entry>LATERAL derived table</entry>
<entry></entry>
</row>
<row>
<entry>T511</entry>
+ <entry></entry>
<entry>Transaction counts</entry>
<entry></entry>
</row>
<row>
<entry>T541</entry>
+ <entry></entry>
<entry>Updatable table references</entry>
- <entry>?</entry>
+ <entry></entry>
</row>
<row>
<entry>T561</entry>
+ <entry></entry>
<entry>Holdable locators</entry>
<entry></entry>
</row>
<row>
+ <entry>T571</entry>
+ <entry></entry>
+ <entry>Array-returning external SQL-invoked functions</entry>
+ <entry></entry>
+ </row>
+ <row>
<entry>T601</entry>
+ <entry></entry>
<entry>Local cursor references</entry>
<entry></entry>
</row>
@@ -1824,6 +2307,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.7 2002/09/21 18:32:53 pet
</informaltable>
</para>
</sect1>
+
</appendix>
<!-- Keep this comment at the end of the file