Commit 2160c917 authored by Peter Eisentraut's avatar Peter Eisentraut

Add sql_features table to information schema. Generate the features list

in the documentation from that same data.
parent 1eddbd81
......@@ -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)
<!--
$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>
......
<!-- $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;
......
# /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;
......@@ -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:
......
......@@ -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
......
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
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
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment