in the documentation from that same data.
#
#
# 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 $
#
#----------------------------------------------------------------------------
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
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
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 $<
# 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">
<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 <select list></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><describe input> 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">
<!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;
--- /dev/null
+# /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/</</g;
+ $subfeature_name =~ s/>/>/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;
#
# 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 $
#
#-------------------------------------------------------------------------
$(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:
*
* 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 $
*/
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;
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');
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
--- /dev/null
+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
--- /dev/null
+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
# 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 $
#
#-------------------------------------------------------------------------
$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