]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Add sql_features table to information schema. Generate the features list
authorPeter Eisentraut <peter_e@gmx.net>
Tue, 14 Jan 2003 23:19:34 +0000 (23:19 +0000)
committerPeter Eisentraut <peter_e@gmx.net>
Tue, 14 Jan 2003 23:19:34 +0000 (23:19 +0000)
in the documentation from that same data.

doc/src/sgml/Makefile
doc/src/sgml/features.sgml
doc/src/sgml/filelist.sgml
doc/src/sgml/mk_feature_tables.pl [new file with mode: 0644]
src/backend/catalog/Makefile
src/backend/catalog/information_schema.sql
src/backend/catalog/sql_feature_packages.txt [new file with mode: 0644]
src/backend/catalog/sql_features.txt [new file with mode: 0644]
src/bin/initdb/initdb.sh

index 93c3c62bb5995ac7ddee1594b7bc97d47b6e8a28..1bbf18b079a564c116d3148938b10cbd0ab88d2e 100644 (file)
@@ -8,7 +8,7 @@
 #
 #
 # IDENTIFICATION
-#    $Header: /cvsroot/pgsql/doc/src/sgml/Makefile,v 1.54 2002/11/26 19:22:16 momjian Exp $
+#    $Header: /cvsroot/pgsql/doc/src/sgml/Makefile,v 1.55 2003/01/14 23:19:34 petere Exp $
 #
 #----------------------------------------------------------------------------
 
@@ -52,7 +52,10 @@ vpath %.sgml ./ref
 
 ALLBOOKS = admin developer programmer reference tutorial user
 
-ALLSGML := $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) bookindex.sgml setindex.sgml version.sgml
+GENERATED_SGML = bookindex.sgml setindex.sgml version.sgml \
+       features-supported.sgml features-unsupported.sgml
+
+ALLSGML := $(wildcard $(srcdir)/*.sgml $(srcdir)/ref/*.sgml) $(GENERATED_SGML)
 
 ifdef DOCBOOKSTYLE
 CATALOG = -c $(DOCBOOKSTYLE)/catalog
@@ -125,6 +128,12 @@ version.sgml: $(top_builddir)/src/Makefile.global
          echo "<!entity majorversion \"`expr $(VERSION) : '\([0-9][0-9]*\.[0-9][0-9]*\)'`\">"; \
        } >$@
 
+features-supported.sgml: $(top_srcdir)/src/backend/catalog/sql_feature_packages.txt $(top_srcdir)/src/backend/catalog/sql_features.txt
+       $(PERL) $(srcdir)/mk_feature_tables.pl YES $^ > $@
+
+features-unsupported.sgml: $(top_srcdir)/src/backend/catalog/sql_feature_packages.txt $(top_srcdir)/src/backend/catalog/sql_features.txt
+       $(PERL) $(srcdir)/mk_feature_tables.pl NO $^ > $@
+
 
 ##
 ## Print
@@ -218,10 +227,10 @@ regress_README.html: regress.sgml
 check: $(addprefix check-, $(ALLBOOKS)) check-postgres
 
 # Quick syntax check without style processing
-$(addprefix check-, $(ALLBOOKS)): check-%: %.sgml bookindex.sgml
+$(addprefix check-, $(ALLBOOKS)): check-%: %.sgml $(ALLSGML)
        $(NSGMLS) $(SGMLINCLUDE) -s book-decl.sgml $<
 
-check-postgres: postgres.sgml setindex.sgml
+check-postgres: postgres.sgml $(ALLSGML)
        $(NSGMLS) $(SGMLINCLUDE) -s $<
 
 
@@ -237,4 +246,4 @@ clean distclean maintainer-clean:
 # print
        rm -f *.rtf *.tex-ps *.tex-pdf *.dvi *.aux *.log *.ps *.pdf *.out *.eps *.fot
 # index
-       rm -f HTML.index bookindex.sgml setindex.sgml version.sgml
+       rm -f HTML.index $(GENERATED_SGML)
index 9c7cc471935504028dea7898d33c4a20d80c7430..e86b36d39cb6217424e82b667490d91b80315482 100644 (file)
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.14 2003/01/10 22:03:26 petere Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.15 2003/01/14 23:19:34 petere Exp $
 -->
 
 <appendix id="features">
@@ -92,2217 +92,36 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.14 2003/01/10 22:03:26 pe
         <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>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-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>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-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-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>
-        <entry></entry>
-       </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>Core</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>E152-02</entry>
-        <entry>Core</entry>
-        <entry>SET TRANSACTION statement: READ ONLY and READ WRITE
-         clauses</entry> 
-        <entry></entry>
-       </row>
-       <row>
-        <entry>E161</entry>
-        <entry>Core</entry>
-        <entry>SQL comments using leading double minus</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>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>Core</entry>
-        <entry>ALTER TABLE statement: ADD COLUMN clause</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F031-13</entry>
-        <entry>Core</entry>
-        <entry>DROP TABLE statement: RESTRICT clause</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F031-16</entry>
-        <entry>Core</entry>
-        <entry>DROP VIEW statement: RESTRICT clause</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F031-19</entry>
-        <entry>Core</entry>
-        <entry>REVOKE statement: RESTRICT clause</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <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> 
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F051-04</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>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>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>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></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>F271</entry>
-        <entry></entry>
-        <entry>Compound character literals</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F281</entry>
-        <entry></entry>
-        <entry>LIKE enhancements</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F302</entry>
-        <entry>OLAP facilities</entry>
-        <entry>INTERSECT table operator</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F302-01</entry>
-        <entry>OLAP facilities</entry>
-        <entry>INTERSECT DISTINCT table operator</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F302-02</entry>
-        <entry>OLAP facilities</entry>
-        <entry>INTERSECT ALL table operator</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F304</entry>
-        <entry>OLAP facilities</entry>
-        <entry>EXCEPT ALL table operator</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F311</entry>
-        <entry>Core</entry>
-        <entry>Schema definition statement</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F311-01</entry>
-        <entry>Core</entry>
-        <entry>CREATE SCHEMA</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F311-02</entry>
-        <entry>Core</entry>
-        <entry>CREATE TABLE for persistent base tables</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F311-03</entry>
-        <entry>Core</entry>
-        <entry>CREATE VIEW</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F311-05</entry>
-        <entry>Core</entry>
-        <entry>GRANT statement</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F321</entry>
-        <entry></entry>
-        <entry>User authorization</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F361</entry>
-        <entry></entry>
-        <entry>Subprogram support</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F381</entry>
-        <entry></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>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-04</entry>
-        <entry></entry>
-        <entry>FETCH PRIOR</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F431-06</entry>
-        <entry></entry>
-        <entry>FETCH RELATIVE</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F441</entry>
-        <entry></entry>
-        <entry>Extended set function support</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F471</entry>
-        <entry>Core</entry>
-        <entry>Scalar subquery values</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <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>F501-03</entry>
-        <entry>Core</entry>
-        <entry>SQL_LANGUAGES view</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></entry>
-        <entry>Indicator data types</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F651</entry>
-        <entry></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>F761</entry>
-        <entry></entry>
-        <entry>Session management</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F711</entry>
-        <entry></entry>
-        <entry>ALTER domain</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F791</entry>
-        <entry></entry>
-        <entry>Insensitive cursors</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F801</entry>
-        <entry></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>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></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-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-07</entry>
-        <entry>Enhanced integrity management</entry>
-        <entry>TRIGGER privilege</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>T212</entry>
-        <entry>Enhanced integrity management</entry>
-        <entry>Enhanced trigger capability</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>T312</entry>
-        <entry></entry>
-        <entry>OVERLAY function</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <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></entry>
-        <entry>Bracketed SQL comments (/*...*/ comments)</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>T441</entry>
-        <entry></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></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>
-      </tbody>
-     </tgroup>
-    </informaltable>
-   </para>
-  </sect1>
-
-  <sect1 id="unsupported-features-sql99">
-   <title>Unsupported Features</title>
-
-   <para>
-    The following features defined in <acronym>SQL99</acronym> are not
-    implemented in the current release of
-    <productname>PostgreSQL</productname>. In a few cases, equivalent
-    functionality is available.
-
-    <informaltable>
-     <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 to stay open across transactions</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></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>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>F311-04</entry>
-        <entry>Core</entry>
-        <entry>CREATE VIEW: WITH CHECK OPTION</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F341</entry>
-        <entry></entry>
-        <entry>Usage tables</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <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></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>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>intentionally omitted</entry>
-       </row>
-       <row>
-        <entry>F691</entry>
-        <entry></entry>
-        <entry>Collation and translation</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <entry>F721</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>F771</entry>
-        <entry></entry>
-        <entry>Connection management</entry>
-        <entry></entry>
-       </row>
-       <row>
-        <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></entry>
-       </row>
-       <row>
-        <entry>S024, SQL/MM support</entry>
-        <entry>Enhanced object support</entry>
-        <entry>Enhanced structured types</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>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-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>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>
-       </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>
+
+      &features-supported;
+
+     </tgroup>
+    </informaltable>
+   </para>
+  </sect1>
+
+  <sect1 id="unsupported-features-sql99">
+   <title>Unsupported Features</title>
+
+   <para>
+    The following features defined in <acronym>SQL99</acronym> are not
+    implemented in the current release of
+    <productname>PostgreSQL</productname>. In a few cases, equivalent
+    functionality is available.
+
+    <informaltable>
+     <tgroup cols="4">
+      <thead>
        <row>
-        <entry>T601</entry>
-        <entry></entry>
-        <entry>Local cursor references</entry>
-        <entry></entry>
+        <entry>Identifier</entry>
+        <entry>Package</entry>
+        <entry>Description</entry>
+        <entry>Comment</entry>
        </row>
-      </tbody>
+      </thead>
+
+      &features-unsupported;
+
      </tgroup>
     </informaltable>
    </para>
index 7331dcda736825fe3c3d7354368a20dfeec82dba..1e3efd913202811f0de2e2e2a0159ab7517bee88 100644 (file)
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.25 2002/10/24 17:48:54 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.26 2003/01/14 23:19:34 petere Exp $ -->
 
 <!entity history    SYSTEM "history.sgml">
 <!entity info       SYSTEM "info.sgml">
@@ -34,6 +34,9 @@
 <!entity syntax     SYSTEM "syntax.sgml">
 <!entity typeconv   SYSTEM "typeconv.sgml">
 
+<!entity features-supported   SYSTEM "features-supported.sgml">
+<!entity features-unsupported SYSTEM "features-unsupported.sgml">
+
 <!-- reference pages -->
 <!entity % allfiles   SYSTEM "ref/allfiles.sgml">
 %allfiles;
diff --git a/doc/src/sgml/mk_feature_tables.pl b/doc/src/sgml/mk_feature_tables.pl
new file mode 100644 (file)
index 0000000..445acdb
--- /dev/null
@@ -0,0 +1,54 @@
+# /usr/bin/perl -w
+
+my $yesno = $ARGV[0];
+
+open PACK, $ARGV[1] or die;
+
+my %feature_packages;
+
+while (<PACK>) {
+    chomp;
+    my ($fid, $pname) = split /\t/;
+    if ($feature_packages{$fid}) {
+       $feature_packages{$fid} .= ", $pname";
+    } else {
+       $feature_packages{$fid} = $pname;
+    }
+}
+
+close PACK;
+
+open FEAT, $ARGV[2] or die;
+
+print "<tbody>\n";
+
+while (<FEAT>) {
+    chomp;
+    my ($feature_id, $feature_name, $subfeature_id, $subfeature_name, $is_supported, $comments) = split /\t/;
+
+    $is_supported eq $yesno || next;
+
+    $subfeature_name =~ s/</&lt;/g;
+    $subfeature_name =~ s/>/&gt;/g;
+
+    print " <row>\n";
+
+    if ($subfeature_id) {
+       print "  <entry>$feature_id-$subfeature_id</entry>\n";
+    } else {
+       print "  <entry>$feature_id</entry>\n";
+    }
+    print "  <entry>" . $feature_packages{$feature_id} . "</entry>\n";
+    if ($subfeature_id) {
+       print "  <entry>$subfeature_name</entry>\n";
+    } else {
+       print "  <entry>$feature_name</entry>\n";
+    }
+    print "  <entry>$comments</entry>\n";
+
+    print " </row>\n";
+}
+
+print "</tbody>\n";
+
+close FEAT;
index 32570ed128af6826028069a4464a6e7fc6a18e3c..383775d84767e1d30b862d6da5f98f0ddfdde985 100644 (file)
@@ -2,7 +2,7 @@
 #
 # Makefile for backend/catalog
 #
-# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.44 2003/01/13 20:37:18 tgl Exp $
+# $Header: /cvsroot/pgsql/src/backend/catalog/Makefile,v 1.45 2003/01/14 23:19:34 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -46,13 +46,14 @@ install-data: $(BKIFILES) installdirs
        $(INSTALL_DATA) postgres.bki         $(DESTDIR)$(datadir)/postgres.bki
        $(INSTALL_DATA) postgres.description $(DESTDIR)$(datadir)/postgres.description
        $(INSTALL_DATA) $(srcdir)/information_schema.sql $(DESTDIR)$(datadir)/information_schema.sql
+       $(INSTALL_DATA) $(srcdir)/sql_features.txt $(DESTDIR)$(datadir)/sql_features.txt
 
 installdirs:
        $(mkinstalldirs) $(DESTDIR)$(datadir)
 
 .PHONY: uninstall-data
 uninstall-data:
-       rm -f $(addprefix $(DESTDIR)$(datadir)/, $(BKIFILES) information_schema.sql)
+       rm -f $(addprefix $(DESTDIR)$(datadir)/, $(BKIFILES) information_schema.sql sql_features.txt)
 
 
 clean: 
index 58e26ea48a37b3cc75ab994e1cbdcd2d9bf547d8..ba4702df85856edf40ae4330535a89f47b43abf9 100644 (file)
@@ -4,7 +4,7 @@
  *
  * Copyright 2002, PostgreSQL Global Development Group
  *
- * $Id: information_schema.sql,v 1.1 2002/12/14 00:24:24 petere Exp $
+ * $Id: information_schema.sql,v 1.2 2003/01/14 23:19:34 petere Exp $
  */
 
 
@@ -312,15 +312,12 @@ CREATE TABLE sql_features (
     feature_name        character_data,
     sub_feature_id      character_data,
     sub_feature_name    character_data,
-    feature_subfeature_package_code character_data,
     is_supported        character_data,
     is_verified_by      character_data,
     comments            character_data
-);
+) WITHOUT OIDS;
 
--- FIXME: Fill this in using the information in User's Guide Appendix
--- C, and then figure out a way to generate the documentation from this
--- table.
+-- Will be filled with external data by initdb.
 
 GRANT SELECT ON sql_features TO PUBLIC;
 
@@ -338,7 +335,7 @@ CREATE TABLE sql_languages (
     sql_language_implementation character_data,
     sql_language_binding_style  character_data,
     sql_language_programming_language character_data
-);
+) WITHOUT OIDS;
 
 INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL);
 INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C');
@@ -346,6 +343,33 @@ INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBED
 GRANT SELECT ON sql_languages TO PUBLIC;
 
 
+/*
+ * 20.50
+ * SQL_PACKAGES table
+ */
+
+CREATE TABLE sql_packages (
+    feature_id      character_data,
+    feature_name    character_data,
+    is_supported    character_data,
+    is_verified_by  character_data,
+    comments        character_data
+) WITHOUT OIDS;
+
+INSERT INTO sql_packages VALUES ('PKG000', 'Core', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG001', 'Enhanced datetime facilities', 'YES', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG002', 'Enhanced integrity management', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG003', 'OLAP facilities', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG004', 'PSM', 'NO', NULL, 'PL/pgSQL is similar.');
+INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.');
+INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, '');
+INSERT INTO sql_packages VALUES ('PKG009', 'SQL/MM support', 'NO', NULL, '');
+
+GRANT SELECT ON sql_packages TO PUBLIC;
+
+
 /*
  * 20.53
  * TABLE_CONSTRAINTS view
diff --git a/src/backend/catalog/sql_feature_packages.txt b/src/backend/catalog/sql_feature_packages.txt
new file mode 100644 (file)
index 0000000..b2e403c
--- /dev/null
@@ -0,0 +1,82 @@
+B011   Core
+B012   Core
+B013   Core
+B014   Core
+B015   Core
+B016   Core
+B017   Core
+E011   Core
+E021   Core
+E031   Core
+E051   Core
+E061   Core
+E071   Core
+E081   Core
+E091   Core
+E101   Core
+E111   Core
+E121   Core
+E131   Core
+E141   Core
+E151   Core
+E152   Core
+E153   Core
+E161   Core
+E171   Core
+E182   Core
+F021   Core
+F031   Core
+F041   Core
+F051   Core
+F052   Enhanced datetime facilities
+F081   Core
+F131   Core
+F191   Enhanced integrity management
+F201   Core
+F221   Core
+F261   Core
+F302   OLAP facilities
+F304   OLAP facilities
+F311   Core
+F401   OLAP facilities
+F411   Enhanced datetime facilities
+F471   Core
+F481   Core
+F491   Enhanced integrity management
+F501   Core
+F521   Enhanced integrity management
+F555   Enhanced datetime facilities
+F591   OLAP facilities
+F641   OLAP facilities
+F671   Enhanced integrity management
+F701   Enhanced integrity management
+F812   Core
+S011   Core
+S023   Basic object support
+S023   SQL/MM support
+S024   Enhanced object support
+S024   SQL/MM support
+S041   Basic object support
+S043   Enhanced object support
+S051   Basic object support
+S071   Enhanced object support
+S081   Enhanced object support
+S091   SQL/MM support
+S092   SQL/MM support
+S111   Enhanced object support
+S151   Basic object support
+S161   Enhanced object support
+S211   Enhanced object support
+S211   SQL/MM support
+S231   Enhanced object support
+S241   Enhanced object support
+T041   Basic object support
+T191   Enhanced integrity management
+T201   Enhanced integrity management
+T211   Enhanced integrity management
+T211   Active database
+T212   Enhanced integrity management
+T321   Core
+T322   PSM
+T322   SQL/MM support
+T431   OLAP facilities
diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt
new file mode 100644 (file)
index 0000000..e3231be
--- /dev/null
@@ -0,0 +1,360 @@
+B011   Embedded Ada                    NO      
+B012   Embedded C                      YES     
+B013   Embedded COBOL                  NO      
+B014   Embedded Fortran                        NO      
+B015   Embedded MUMPS                  NO      
+B016   Embedded Pascal                 NO      
+B017   Embedded PL/I                   NO      
+B021   Direct SQL                      YES     
+B031   Basic dynamic SQL                       NO      
+B032   Extended dynamic SQL                    NO      
+B032   Extended dynamic SQL    01      <describe input> statement      NO      
+B041   Extensions to embedded SQL exception declarations                       NO      
+B051   Enhanced execution rights                       NO      
+E011   Numeric data types                      YES     
+E011   Numeric data types      01      INTEGER and SMALLINT data types YES     
+E011   Numeric data types      02      REAL, DOUBLE PRECISON, and FLOAT data types     YES     
+E011   Numeric data types      03      DECIMAL and NUMERIC data types  YES     
+E011   Numeric data types      04      Arithmetic operators    YES     
+E011   Numeric data types      05      Numeric comparison      YES     
+E011   Numeric data types      06      Implicit casting among the numeric data types   YES     
+E021   Character data types                    YES     
+E021   Character data types    01      CHARACTER data type     YES     
+E021   Character data types    02      CHARACTER VARYING data type     YES     
+E021   Character data types    03      Character literals      YES     
+E021   Character data types    04      CHARACTER_LENGTH function       YES     
+E021   Character data types    05      OCTET_LENGTH function   YES     
+E021   Character data types    06      SUBSTRING function      YES     
+E021   Character data types    07      Character concatenation YES     
+E021   Character data types    08      UPPER and LOWER functions       YES     
+E021   Character data types    09      TRIM function   YES     
+E021   Character data types    10      Implicit casting among the character data types YES     
+E021   Character data types    11      POSITION function       YES     
+E021   Character data types    12      Character comparison    YES     
+E031   Identifiers                     YES     
+E031   Identifiers     01      Delimited identifiers   YES     
+E031   Identifiers     02      Lower case identifiers  YES     
+E031   Identifiers     03      Trailing underscore     YES     
+E051   Basic query specification                       YES     
+E051   Basic query specification       01      SELECT DISTINCT YES     
+E051   Basic query specification       02      GROUP BY clause YES     
+E051   Basic query specification       04      GROUP BY can contain columns not in <select list>       YES     
+E051   Basic query specification       05      Select list items can be renamed        YES     AS is required
+E051   Basic query specification       06      HAVING clause   YES     
+E051   Basic query specification       07      Qualified * in select list      YES     
+E051   Basic query specification       08      Correlation names in the FROM clause    YES     
+E051   Basic query specification       09      Rename columns in the FROM clause       YES     
+E061   Basic predicates and search conditions                  YES     
+E061   Basic predicates and search conditions  01      Comparison predicate    YES     
+E061   Basic predicates and search conditions  02      BETWEEN predicate       YES     
+E061   Basic predicates and search conditions  03      IN predicate with list of values        YES     
+E061   Basic predicates and search conditions  04      LIKE predicate  YES     
+E061   Basic predicates and search conditions  05      LIKE predicate ESCAPE clause    YES     
+E061   Basic predicates and search conditions  06      NULL predicate  YES     
+E061   Basic predicates and search conditions  07      Quantified comparison predicate YES     
+E061   Basic predicates and search conditions  08      EXISTS predicate        YES     
+E061   Basic predicates and search conditions  09      Subqueries in comparison predicate      YES     
+E061   Basic predicates and search conditions  11      Subqueries in IN predicate      YES     
+E061   Basic predicates and search conditions  12      Subqueries in quantified comparison predicate   YES     
+E061   Basic predicates and search conditions  13      Correlated subqueries   YES     
+E061   Basic predicates and search conditions  14      Search condition        YES     
+E071   Basic query expressions                 YES     
+E071   Basic query expressions 01      UNION DISTINCT table operator   YES     
+E071   Basic query expressions 02      UNION ALL table operator        YES     
+E071   Basic query expressions 03      EXCEPT DISTINCT table operator  YES     
+E071   Basic query expressions 05      Columns combined via table operators need not have exactly the same data type   YES     
+E071   Basic query expressions 06      Table operators in subqueries   YES     
+E081   Basic Privileges                        NO      
+E081   Basic Privileges        01      SELECT privilege        YES     
+E081   Basic Privileges        02      DELETE privilege        YES     
+E081   Basic Privileges        03      INSERT privilege at the table level     YES     
+E081   Basic Privileges        04      UPDATE privilege at the table level     YES     
+E081   Basic Privileges        05      UPDATE privilege at the column level    NO      
+E081   Basic Privileges        06      REFERENCES privilege at the table level YES     
+E081   Basic Privileges        07      REFERENCES privilege at the column level        NO      
+E081   Basic Privileges        08      WITH GRANT OPTION       NO      
+E091   Set functions                   YES     
+E091   Set functions   01      AVG     YES     
+E091   Set functions   02      COUNT   YES     
+E091   Set functions   03      MAX     YES     
+E091   Set functions   04      MIN     YES     
+E091   Set functions   05      SUM     YES     
+E091   Set functions   06      ALL quantifier  YES     
+E091   Set functions   07      DISTINCT quantifier     YES     
+E101   Basic data manipulation                 YES     
+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 supoprt    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  NO      
+E121   Basic cursor support    06      Positioned UPDATE statement     NO      
+E121   Basic cursor support    07      Positioned DELETE statement     NO      
+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       NO      
+E131   Null value support (nulls in lieu of values)                    YES     
+E141   Basic integrity constraints                     YES     
+E141   Basic integrity constraints     01      NOT NULL constraints    YES     
+E141   Basic integrity constraints     02      UNIQUE constraints of NOT NULL columns  YES     
+E141   Basic integrity constraints     03      PRIMARY KEY constraints YES     
+E141   Basic integrity constraints     04      Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action        YES     
+E141   Basic integrity constraints     06      CHECK constraints       YES     
+E141   Basic integrity constraints     07      Column defaults YES     
+E141   Basic integrity constraints     08      NOT NULL inferred on PRIMARY KEY        YES     
+E141   Basic integrity constraints     10      Names in a foreign key can be specified in any order    YES     
+E151   Transaction support                     YES     
+E151   Transaction support     01      COMMIT statement        YES     
+E151   Transaction support     02      ROLLBACK statement      YES     
+E152   Basic SET TRANSACTION statement                 YES     
+E152   Basic SET TRANSACTION statement 01      SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause  YES     
+E152   Basic SET TRANSACTION statement 02      SET TRANSACTION statement: READ ONLY and READ WRITE clauses     YES     
+E153   Updatable queries with subqueries                       NO      
+E161   SQL comments using leading double minus                 YES     
+E171   SQLSTATE support                        NO      
+E182   Module language                 NO      
+F021   Basic information schema                        YES     
+F021   Basic information schema        01      COLUMNS view    YES     
+F021   Basic information schema        02      TABLES view     YES     
+F021   Basic information schema        03      VIEWS view      YES     
+F021   Basic information schema        04      TABLE_CONSTRAINTS view  YES     
+F021   Basic information schema        05      REFERENTIAL_CONSTRAINTS view    YES     
+F021   Basic information schema        06      CHECK_CONSTRAINTS view  YES     
+F031   Basic schema manipulation                       YES     
+F031   Basic schema manipulation       01      CREATE TABLE statement to create persistent base tables YES     
+F031   Basic schema manipulation       02      CREATE VIEW statement   YES     
+F031   Basic schema manipulation       03      GRANT statement YES     
+F031   Basic schema manipulation       04      ALTER TABLE statement: ADD COLUMN clause        YES     
+F031   Basic schema manipulation       13      DROP TABLE statement: RESTRICT clause   YES     
+F031   Basic schema manipulation       16      DROP VIEW statement: RESTRICT clause    YES     
+F031   Basic schema manipulation       19      REVOKE statement: RESTRICT clause       YES     
+F032   CASCADE drop behavior                   YES     
+F033   ALTER TABLE statement: DROP COLUMN clause                       YES     
+F034   Extended REVOKE statement                       NO      
+F034   Extended REVOKE statement       01      REVOKE statement performed by other than the owner of a schema object   NO      
+F034   Extended REVOKE statement       02      REVOKE statement: GRANT OPTION FOR clause       NO      
+F034   Extended REVOKE statement       03      REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION   NO      
+F041   Basic joined table                      YES     
+F041   Basic joined table      01      Inner join (but not necessarily the INNER keyword)      YES     
+F041   Basic joined table      02      INNER keyword   YES     
+F041   Basic joined table      03      LEFT OUTER JOIN YES     
+F041   Basic joined table      04      RIGHT OUTER JOIN        YES     
+F041   Basic joined table      05      Outer joins can be nested       YES     
+F041   Basic joined table      07      The inner table in a left or right outer join can also be used in an inner join YES     
+F041   Basic joined table      08      All comparison operators are supported (rather than just =)     YES     
+F051   Basic date and time                     YES     
+F051   Basic date and time     01      DATE data type (including support of DATE literal)      YES     
+F051   Basic date and time     02      TIME data type (including support of TIME literal) with fractional seconds precision of at least 0      YES     
+F051   Basic date and time     03      TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6      YES     
+F051   Basic date and time     04      Comparison predicate on DATE, TIME, and TIMESTAMP data types    YES     
+F051   Basic date and time     05      Explicit CAST between datetime types and character types        YES     
+F051   Basic date and time     06      CURRENT_DATE    YES     
+F051   Basic date and time     07      LOCALTIME       YES     
+F051   Basic date and time     08      LOCALTIMESTAMP  YES     
+F052   Intervals and datetime arithmetic                       YES     
+F081   UNION and EXCEPT in views                       YES     
+F111   Isolation levels other than SERIALIZABLE                        NO      
+F111   Isolation levels other than SERIALIZABLE        01      READ UNCOMMITTED isolation level        NO      
+F111   Isolation levels other than SERIALIZABLE        02      READ COMMITTED isolation level  YES     
+F111   Isolation levels other than SERIALIZABLE        03      REPEATABLE READ isolation level NO      
+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      
+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     
+F131   Grouped operations      03      Set functions supported in queries with grouped views   YES     
+F131   Grouped operations      04      Subqueries with GROUP BY and HAVING clauses and grouped views   YES     
+F131   Grouped operations      05      Single row SELECT with GROUP BY and HAVING clauses and grouped views    YES     
+F171   Multiple schemas per user                       YES     
+F181   Multiple module support                 NO      
+F191   Referential delete actions                      YES     
+F201   CAST function                   YES     
+F221   Explicit defaults                       YES     
+F222   INSERT statement: DEFAULT VALUES clause                 YES     
+F231   Privilege Tables                        YES     
+F231   Privilege Tables        01      TABLE_PRIVILEGES view   YES     
+F231   Privilege Tables        02      COLUMN_PRIVILEGES view  YES     
+F231   Privilege Tables        03      USAGE_PRIVILEGES view   YES     
+F251   Domain support                  YES     
+F261   CASE expression                 YES     
+F261   CASE expression 01      Simple CASE     YES     
+F261   CASE expression 02      Searched CASE   YES     
+F261   CASE expression 03      NULLIF  YES     
+F261   CASE expression 04      COALESCE        YES     
+F271   Compound character literals                     YES     
+F281   LIKE enhancements                       YES     
+F291   UNIQUE predicate                        NO      
+F301   CORRESPONDING in query expressions                      NO      
+F302   INTERSECT table operator                        YES     
+F302   INTERSECT table operator        01      INTERSECT DISTINCT table operator       YES     
+F302   INTERSECT table operator        02      INTERSECT ALL table operator    YES     
+F304   EXCEPT ALL table operator                       YES     
+F311   Schema definition statement                     NO      
+F311   Schema definition statement     01      CREATE SCHEMA   YES     
+F311   Schema definition statement     02      CREATE TABLE for persistent base tables YES     
+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     
+F321   User authorization                      YES     
+F341   Usage tables                    NO      
+F361   Subprogram support                      YES     
+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     
+F391   Long identifiers                        YES     
+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   03      UNION JOIN      YES     
+F401   Extended joined table   04      CROSS JOIN      YES     
+F411   Time zone specification                 YES     
+F421   National character                      YES     
+F431   Read-only scrollable cursors                    NO      
+F431   Read-only scrollable cursors    01      FETCH with explicit NEXT        YES     
+F431   Read-only scrollable cursors    02      FETCH FIRST     NO      
+F431   Read-only scrollable cursors    03      FETCH LAST      NO      
+F431   Read-only scrollable cursors    04      FETCH PRIOR     YES     
+F431   Read-only scrollable cursors    05      FETCH ABSOLUTE  NO      
+F431   Read-only scrollable cursors    06      FETCH RELATIVE  YES     
+F441   Extended set function support                   YES     
+F451   Character set definition                        NO      
+F461   Named character sets                    NO      
+F471   Scalar subquery values                  YES     
+F481   Expanded NULL predicate                 YES     
+F491   Constraint management                   YES     
+F501   Features and conformance views                  NO      
+F501   Features and conformance views  01      SQL_FEATURES view       YES     
+F501   Features and conformance views  02      SQL_SIZING view NO      
+F501   Features and conformance views  03      SQL_LANGUAGES view      YES     
+F502   Enhanced documentation tables                   NO      
+F502   Enhanced documentation tables   01      SQL_SIZING_PROFILES view        NO      
+F502   Enhanced documentation tables   02      SQL_IMPLEMENTATION_INFO view    NO      
+F502   Enhanced documentation tables   03      SQL_PACKAGES view       YES     
+F511   BIT data type                   YES     
+F521   Assertions                      NO      
+F531   Temporary tables                        YES     
+F555   Enhanced seconds precision                      YES     
+F561   Full value expressions                  YES     
+F571   Truth value tests                       YES     
+F591   Derived tables                  YES     
+F611   Indicator data types                    YES     
+F641   Row and table constructors                      NO      
+F651   Catalog name qualifiers                 YES     
+F661   Simple tables                   NO      
+F671   Subqueries in CHECK                     NO      intentionally omitted
+F691   Collation and translation                       NO      
+F701   Referential update actions                      YES     
+F711   ALTER domain                    YES     
+F721   Deferrable constraints                  NO      foreign keys only
+F731   INSERT column privileges                        NO      
+F741   Referential MATCH types                 NO      no partial match yet
+F751   View CHECK enhancements                 NO      
+F761   Session management                      YES     
+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 for "Core SQL Flagging" and "Catalog Lookup" only                     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      
+S011   Distinct data types                     NO      
+S011   Distinct data types     01      USER_DEFINED_TYPES view NO      
+S023   Basic structured types                  NO      
+S024   Enhanced structured types                       NO      
+S041   Basic reference types                   NO      
+S043   Enhanced reference types                        NO      
+S051   Create table of type                    NO      
+S071   SQL paths in function and type name resolution                  YES     
+S081   Subtables                       NO      
+S091   Basic array support                     NO      PostgreSQL arrays are different
+S091   Basic array support     01      Arrays of built-in data types   NO      
+S091   Basic array support     02      Arrays of distinct types        NO      
+S091   Basic array support     03      Array expressions       NO      
+S092   Arrays of user-defined types                    NO      
+S094   Arrays of reference types                       NO      
+S111   ONLY in query expressions                       YES     
+S151   Type predicate                  NO      
+S161   Subtype treatment                       NO      
+S201   SQL routines on arrays                  NO      
+S201   SQL routines on arrays  01      Array parameters        NO      
+S201   SQL routines on arrays  02      Array as result type of functions       NO      
+S211   User-defined cast functions                     YES     
+S231   Structured type locators                        NO      
+S232   Array locators                  NO      
+S241   Transform functions                     NO      
+S251   User-defined orderings                  NO      
+S261   Specific type method                    NO      
+T011   Timestamp in Information Schema                 NO      
+T031   BOOLEAN data type                       YES     
+T041   Basic LOB data type support                     NO      
+T041   Basic LOB data type support     01      BLOB data type  NO      
+T041   Basic LOB data type support     02      CLOB data type  NO      
+T041   Basic LOB data type support     03      POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types        NO      
+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      
+T051   Row types                       NO      
+T111   Updatable joins, unions, and columns                    NO      
+T121   WITH (excluding RECURSIVE) in query expression                  NO      
+T131   Recursive query                 NO      
+T141   SIMILAR predicate                       YES     
+T151   DISTINCT predicate                      YES     
+T171   LIKE clause in table definition                 NO      
+T191   Referential action RESTRICT                     YES     
+T201   Comparable data types for referential constraints                       YES     
+T211   Basic trigger capability                        NO      
+T211   Basic trigger capability        01      Triggers activated on UPDATE, INSERT, or DELETE of one base table       YES     
+T211   Basic trigger capability        02      BEFORE triggers YES     
+T211   Basic trigger capability        03      AFTER triggers  YES     
+T211   Basic trigger capability        04      FOR EACH ROW triggers   YES     
+T211   Basic trigger capability        05      Ability to specify a search condition that must be true before the trigger is invoked   NO      
+T211   Basic trigger capability        06      Support for run-time rules for the interaction of triggers and constraints      NO      
+T211   Basic trigger capability        07      TRIGGER privilege       YES     
+T211   Basic trigger capability        08      Multiple triggers for the same the event are executed in the order in which they were created   NO      
+T212   Enhanced trigger capability                     YES     
+T231   SENSITIVE cursors                       YES     
+T241   START TRANSACTION statement                     YES     
+T251   SET TRANSACTION statement: LOCAL option                 NO      
+T261   Chained transactions                    NO      
+T271   Savepoints                      NO      
+T281   SELECT privilege with column granularity                        NO      
+T301   Functional Dependencies                 NO      
+T312   OVERLAY function                        YES     
+T321   Basic SQL-invoked routines                      NO      
+T321   Basic SQL-invoked routines      01      User-defined functions with no overloading      YES     
+T321   Basic SQL-invoked routines      02      User-defined stored procedures with no overloading      NO      
+T321   Basic SQL-invoked routines      03      Function invocation     YES     
+T321   Basic SQL-invoked routines      04      CALL statement  NO      
+T321   Basic SQL-invoked routines      05      RETURN statement        NO      
+T321   Basic SQL-invoked routines      06      ROUTINES view   NO      
+T321   Basic SQL-invoked routines      07      PARAMETERS view NO      
+T322   Overloading of SQL-invoked functions and procedures                     YES     
+T323   Explicit security for external routines                 YES     
+T331   Basic roles                     NO      
+T332   Extended roles                  NO      
+T351   Bracketed SQL comments (/*...*/ comments)                       YES     
+T401   INSERT into a cursor                    NO      
+T411   UPDATE statement: SET ROW option                        NO      
+T431   CUBE and ROLLUP operations                      NO      
+T441   ABS and MOD functions                   YES     
+T461   Symmetric BETWEEN predicate                     NO      
+T471   Result sets return value                        NO      
+T491   LATERAL derived table                   NO      
+T501   Enhanced EXISTS predicate                       YES     
+T511   Transaction counts                      NO      
+T541   Updatable table references                      NO      
+T551   Optional key words for default syntax                   YES     
+T561   Holdable locators                       NO      
+T571   Array-returning external SQL-invoked functions                  NO      
+T581   Regular expression substring function                   YES     
+T591   UNIQUE constraints of possibly null columns                     YES     
+T601   Local cursor references                 NO      
index a1c806cc7ece56c59061d615c9036c2530a03edd..049de88742c2c61e48397dbdfb147c6b9b8971a0 100644 (file)
@@ -27,7 +27,7 @@
 # Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
 # Portions Copyright (c) 1994, Regents of the University of California
 #
-# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.178 2002/12/14 00:24:24 petere Exp $
+# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.179 2003/01/14 23:19:34 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -1044,6 +1044,12 @@ echo "ok"
 
 $ECHO_N "creating information schema... "$ECHO_C
 "$PGPATH"/postgres $PGSQL_OPT -N template1 > /dev/null < "$datadir"/information_schema.sql || exit_nicely
+(
+  echo "COPY information_schema.sql_features (feature_id, feature_name, sub_feature_id, sub_feature_name, is_supported, comments) FROM STDIN;"
+  cat "$datadir"/sql_features.txt
+  echo "\."
+) \
+       | "$PGPATH"/postgres $PGSQL_OPT template1 > /dev/null || exit_nicely
 echo "ok"
 
 $ECHO_N "vacuuming database template1... "$ECHO_C