From 2160c9177d03c3989ca7fb9fa093adec0f3a116f Mon Sep 17 00:00:00 2001 From: Peter Eisentraut <peter_e@gmx.net> Date: Tue, 14 Jan 2003 23:19:34 +0000 Subject: [PATCH] Add sql_features table to information schema. Generate the features list in the documentation from that same data. --- doc/src/sgml/Makefile | 19 +- doc/src/sgml/features.sgml | 2239 +----------------- doc/src/sgml/filelist.sgml | 5 +- doc/src/sgml/mk_feature_tables.pl | 54 + src/backend/catalog/Makefile | 5 +- src/backend/catalog/information_schema.sql | 38 +- src/backend/catalog/sql_feature_packages.txt | 82 + src/backend/catalog/sql_features.txt | 360 +++ src/bin/initdb/initdb.sh | 8 +- 9 files changed, 584 insertions(+), 2226 deletions(-) create mode 100644 doc/src/sgml/mk_feature_tables.pl create mode 100644 src/backend/catalog/sql_feature_packages.txt create mode 100644 src/backend/catalog/sql_features.txt diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile index 93c3c62bb59..1bbf18b079a 100644 --- a/doc/src/sgml/Makefile +++ b/doc/src/sgml/Makefile @@ -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) diff --git a/doc/src/sgml/features.sgml b/doc/src/sgml/features.sgml index 9c7cc471935..e86b36d39cb 100644 --- a/doc/src/sgml/features.sgml +++ b/doc/src/sgml/features.sgml @@ -1,5 +1,5 @@ <!-- -$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.14 2003/01/10 22:03:26 petere Exp $ +$Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.15 2003/01/14 23:19:34 petere Exp $ --> <appendix id="features"> @@ -92,2217 +92,36 @@ $Header: /cvsroot/pgsql/doc/src/sgml/features.sgml,v 2.14 2003/01/10 22:03:26 pe <entry>Comment</entry> </row> </thead> - <tbody> - <row> - <entry>B012</entry> - <entry>Core</entry> - <entry>Embedded C</entry> - <entry></entry> - </row> - <row> - <entry>B021</entry> - <entry></entry> - <entry>Direct SQL</entry> - <entry></entry> - </row> - <row> - <entry>E011</entry> - <entry>Core</entry> - <entry>Numeric data types</entry> - <entry></entry> - </row> - <row> - <entry>E011-01</entry> - <entry>Core</entry> - <entry>INTEGER and SMALLINT data types</entry> - <entry></entry> - </row> - <row> - <entry>E011-02</entry> - <entry>Core</entry> - <entry>REAL, DOUBLE PRECISON, and FLOAT data types</entry> - <entry></entry> - </row> - <row> - <entry>E011-03</entry> - <entry>Core</entry> - <entry>DECIMAL and NUMERIC data types</entry> - <entry></entry> - </row> - <row> - <entry>E011-04</entry> - <entry>Core</entry> - <entry>Arithmetic operators</entry> - <entry></entry> - </row> - <row> - <entry>E011-05</entry> - <entry>Core</entry> - <entry>Numeric comparison</entry> - <entry></entry> - </row> - <row> - <entry>E011-06</entry> - <entry>Core</entry> - <entry>Implicit casting among the numeric data types</entry> - <entry></entry> - </row> - <row> - <entry>E021</entry> - <entry>Core</entry> - <entry>Character data types</entry> - <entry></entry> - </row> - <row> - <entry>E021-01</entry> - <entry>Core</entry> - <entry>CHARACTER data type</entry> - <entry></entry> - </row> - <row> - <entry>E021-02</entry> - <entry>Core</entry> - <entry>CHARACTER VARYING data type</entry> - <entry></entry> - </row> - <row> - <entry>E021-03</entry> - <entry>Core</entry> - <entry>Character literals</entry> - <entry></entry> - </row> - <row> - <entry>E021-04</entry> - <entry>Core</entry> - <entry>CHARACTER_LENGTH function</entry> - <entry></entry> - </row> - <row> - <entry>E021-05</entry> - <entry>Core</entry> - <entry>OCTET_LENGTH function</entry> - <entry></entry> - </row> - <row> - <entry>E021-06</entry> - <entry>Core</entry> - <entry>SUBSTRING function</entry> - <entry></entry> - </row> - <row> - <entry>E021-07</entry> - <entry>Core</entry> - <entry>Character concatenation</entry> - <entry></entry> - </row> - <row> - <entry>E021-08</entry> - <entry>Core</entry> - <entry>UPPER and LOWER functions</entry> - <entry></entry> - </row> - <row> - <entry>E021-09</entry> - <entry>Core</entry> - <entry>TRIM function</entry> - <entry></entry> - </row> - <row> - <entry>E021-10</entry> - <entry>Core</entry> - <entry>Implicit casting among the character data types</entry> - <entry></entry> - </row> - <row> - <entry>E021-11</entry> - <entry>Core</entry> - <entry>POSITION function</entry> - <entry></entry> - </row> - <row> - <entry>E011-12</entry> - <entry>Core</entry> - <entry>Character comparison</entry> - <entry></entry> - </row> - <row> - <entry>E031</entry> - <entry>Core</entry> - <entry>Identifiers</entry> - <entry></entry> - </row> - <row> - <entry>E031-01</entry> - <entry>Core</entry> - <entry>Delimited identifiers</entry> - <entry></entry> - </row> - <row> - <entry>E031-02</entry> - <entry>Core</entry> - <entry>Lower case identifiers</entry> - <entry></entry> - </row> - <row> - <entry>E031-03</entry> - <entry>Core</entry> - <entry>Trailing underscore</entry> - <entry></entry> - </row> - <row> - <entry>E051</entry> - <entry>Core</entry> - <entry>Basic query specification</entry> - <entry></entry> - </row> - <row> - <entry>E051-01</entry> - <entry>Core</entry> - <entry>SELECT DISTINCT</entry> - <entry></entry> - </row> - <row> - <entry>E051-02</entry> - <entry>Core</entry> - <entry>GROUP BY clause</entry> - <entry></entry> - </row> - <row> - <entry>E051-04</entry> - <entry>Core</entry> - <entry>GROUP BY can contain columns not in <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> diff --git a/doc/src/sgml/filelist.sgml b/doc/src/sgml/filelist.sgml index 7331dcda736..1e3efd91320 100644 --- a/doc/src/sgml/filelist.sgml +++ b/doc/src/sgml/filelist.sgml @@ -1,4 +1,4 @@ -<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.25 2002/10/24 17:48:54 petere Exp $ --> +<!-- $Header: /cvsroot/pgsql/doc/src/sgml/filelist.sgml,v 1.26 2003/01/14 23:19:34 petere Exp $ --> <!entity history SYSTEM "history.sgml"> <!entity info SYSTEM "info.sgml"> @@ -34,6 +34,9 @@ <!entity syntax SYSTEM "syntax.sgml"> <!entity typeconv SYSTEM "typeconv.sgml"> +<!entity features-supported SYSTEM "features-supported.sgml"> +<!entity features-unsupported SYSTEM "features-unsupported.sgml"> + <!-- reference pages --> <!entity % allfiles SYSTEM "ref/allfiles.sgml"> %allfiles; diff --git a/doc/src/sgml/mk_feature_tables.pl b/doc/src/sgml/mk_feature_tables.pl new file mode 100644 index 00000000000..445acdb2e99 --- /dev/null +++ b/doc/src/sgml/mk_feature_tables.pl @@ -0,0 +1,54 @@ +# /usr/bin/perl -w + +my $yesno = $ARGV[0]; + +open PACK, $ARGV[1] or die; + +my %feature_packages; + +while (<PACK>) { + chomp; + my ($fid, $pname) = split /\t/; + if ($feature_packages{$fid}) { + $feature_packages{$fid} .= ", $pname"; + } else { + $feature_packages{$fid} = $pname; + } +} + +close PACK; + +open FEAT, $ARGV[2] or die; + +print "<tbody>\n"; + +while (<FEAT>) { + chomp; + my ($feature_id, $feature_name, $subfeature_id, $subfeature_name, $is_supported, $comments) = split /\t/; + + $is_supported eq $yesno || next; + + $subfeature_name =~ s/</</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; diff --git a/src/backend/catalog/Makefile b/src/backend/catalog/Makefile index 32570ed128a..383775d8476 100644 --- a/src/backend/catalog/Makefile +++ b/src/backend/catalog/Makefile @@ -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: diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index 58e26ea48a3..ba4702df858 100644 --- a/src/backend/catalog/information_schema.sql +++ b/src/backend/catalog/information_schema.sql @@ -4,7 +4,7 @@ * * Copyright 2002, PostgreSQL Global Development Group * - * $Id: information_schema.sql,v 1.1 2002/12/14 00:24:24 petere Exp $ + * $Id: information_schema.sql,v 1.2 2003/01/14 23:19:34 petere Exp $ */ @@ -312,15 +312,12 @@ CREATE TABLE sql_features ( feature_name character_data, sub_feature_id character_data, sub_feature_name character_data, - feature_subfeature_package_code character_data, is_supported character_data, is_verified_by character_data, comments character_data -); +) WITHOUT OIDS; --- FIXME: Fill this in using the information in User's Guide Appendix --- C, and then figure out a way to generate the documentation from this --- table. +-- Will be filled with external data by initdb. GRANT SELECT ON sql_features TO PUBLIC; @@ -338,7 +335,7 @@ CREATE TABLE sql_languages ( sql_language_implementation character_data, sql_language_binding_style character_data, sql_language_programming_language character_data -); +) WITHOUT OIDS; INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL); INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C'); @@ -346,6 +343,33 @@ INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBED GRANT SELECT ON sql_languages TO PUBLIC; +/* + * 20.50 + * SQL_PACKAGES table + */ + +CREATE TABLE sql_packages ( + feature_id character_data, + feature_name character_data, + is_supported character_data, + is_verified_by character_data, + comments character_data +) WITHOUT OIDS; + +INSERT INTO sql_packages VALUES ('PKG000', 'Core', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG001', 'Enhanced datetime facilities', 'YES', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG002', 'Enhanced integrity management', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG003', 'OLAP facilities', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG004', 'PSM', 'NO', NULL, 'PL/pgSQL is similar.'); +INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.'); +INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, ''); +INSERT INTO sql_packages VALUES ('PKG009', 'SQL/MM support', 'NO', NULL, ''); + +GRANT SELECT ON sql_packages TO PUBLIC; + + /* * 20.53 * TABLE_CONSTRAINTS view diff --git a/src/backend/catalog/sql_feature_packages.txt b/src/backend/catalog/sql_feature_packages.txt new file mode 100644 index 00000000000..b2e403cc113 --- /dev/null +++ b/src/backend/catalog/sql_feature_packages.txt @@ -0,0 +1,82 @@ +B011 Core +B012 Core +B013 Core +B014 Core +B015 Core +B016 Core +B017 Core +E011 Core +E021 Core +E031 Core +E051 Core +E061 Core +E071 Core +E081 Core +E091 Core +E101 Core +E111 Core +E121 Core +E131 Core +E141 Core +E151 Core +E152 Core +E153 Core +E161 Core +E171 Core +E182 Core +F021 Core +F031 Core +F041 Core +F051 Core +F052 Enhanced datetime facilities +F081 Core +F131 Core +F191 Enhanced integrity management +F201 Core +F221 Core +F261 Core +F302 OLAP facilities +F304 OLAP facilities +F311 Core +F401 OLAP facilities +F411 Enhanced datetime facilities +F471 Core +F481 Core +F491 Enhanced integrity management +F501 Core +F521 Enhanced integrity management +F555 Enhanced datetime facilities +F591 OLAP facilities +F641 OLAP facilities +F671 Enhanced integrity management +F701 Enhanced integrity management +F812 Core +S011 Core +S023 Basic object support +S023 SQL/MM support +S024 Enhanced object support +S024 SQL/MM support +S041 Basic object support +S043 Enhanced object support +S051 Basic object support +S071 Enhanced object support +S081 Enhanced object support +S091 SQL/MM support +S092 SQL/MM support +S111 Enhanced object support +S151 Basic object support +S161 Enhanced object support +S211 Enhanced object support +S211 SQL/MM support +S231 Enhanced object support +S241 Enhanced object support +T041 Basic object support +T191 Enhanced integrity management +T201 Enhanced integrity management +T211 Enhanced integrity management +T211 Active database +T212 Enhanced integrity management +T321 Core +T322 PSM +T322 SQL/MM support +T431 OLAP facilities diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt new file mode 100644 index 00000000000..e3231be377c --- /dev/null +++ b/src/backend/catalog/sql_features.txt @@ -0,0 +1,360 @@ +B011 Embedded Ada NO +B012 Embedded C YES +B013 Embedded COBOL NO +B014 Embedded Fortran NO +B015 Embedded MUMPS NO +B016 Embedded Pascal NO +B017 Embedded PL/I NO +B021 Direct SQL YES +B031 Basic dynamic SQL NO +B032 Extended dynamic SQL NO +B032 Extended dynamic SQL 01 <describe input> statement NO +B041 Extensions to embedded SQL exception declarations NO +B051 Enhanced execution rights NO +E011 Numeric data types YES +E011 Numeric data types 01 INTEGER and SMALLINT data types YES +E011 Numeric data types 02 REAL, DOUBLE PRECISON, and FLOAT data types YES +E011 Numeric data types 03 DECIMAL and NUMERIC data types YES +E011 Numeric data types 04 Arithmetic operators YES +E011 Numeric data types 05 Numeric comparison YES +E011 Numeric data types 06 Implicit casting among the numeric data types YES +E021 Character data types YES +E021 Character data types 01 CHARACTER data type YES +E021 Character data types 02 CHARACTER VARYING data type YES +E021 Character data types 03 Character literals YES +E021 Character data types 04 CHARACTER_LENGTH function YES +E021 Character data types 05 OCTET_LENGTH function YES +E021 Character data types 06 SUBSTRING function YES +E021 Character data types 07 Character concatenation YES +E021 Character data types 08 UPPER and LOWER functions YES +E021 Character data types 09 TRIM function YES +E021 Character data types 10 Implicit casting among the character data types YES +E021 Character data types 11 POSITION function YES +E021 Character data types 12 Character comparison YES +E031 Identifiers YES +E031 Identifiers 01 Delimited identifiers YES +E031 Identifiers 02 Lower case identifiers YES +E031 Identifiers 03 Trailing underscore YES +E051 Basic query specification YES +E051 Basic query specification 01 SELECT DISTINCT YES +E051 Basic query specification 02 GROUP BY clause YES +E051 Basic query specification 04 GROUP BY can contain columns not in <select list> YES +E051 Basic query specification 05 Select list items can be renamed YES AS is required +E051 Basic query specification 06 HAVING clause YES +E051 Basic query specification 07 Qualified * in select list YES +E051 Basic query specification 08 Correlation names in the FROM clause YES +E051 Basic query specification 09 Rename columns in the FROM clause YES +E061 Basic predicates and search conditions YES +E061 Basic predicates and search conditions 01 Comparison predicate YES +E061 Basic predicates and search conditions 02 BETWEEN predicate YES +E061 Basic predicates and search conditions 03 IN predicate with list of values YES +E061 Basic predicates and search conditions 04 LIKE predicate YES +E061 Basic predicates and search conditions 05 LIKE predicate ESCAPE clause YES +E061 Basic predicates and search conditions 06 NULL predicate YES +E061 Basic predicates and search conditions 07 Quantified comparison predicate YES +E061 Basic predicates and search conditions 08 EXISTS predicate YES +E061 Basic predicates and search conditions 09 Subqueries in comparison predicate YES +E061 Basic predicates and search conditions 11 Subqueries in IN predicate YES +E061 Basic predicates and search conditions 12 Subqueries in quantified comparison predicate YES +E061 Basic predicates and search conditions 13 Correlated subqueries YES +E061 Basic predicates and search conditions 14 Search condition YES +E071 Basic query expressions YES +E071 Basic query expressions 01 UNION DISTINCT table operator YES +E071 Basic query expressions 02 UNION ALL table operator YES +E071 Basic query expressions 03 EXCEPT DISTINCT table operator YES +E071 Basic query expressions 05 Columns combined via table operators need not have exactly the same data type YES +E071 Basic query expressions 06 Table operators in subqueries YES +E081 Basic Privileges NO +E081 Basic Privileges 01 SELECT privilege YES +E081 Basic Privileges 02 DELETE privilege YES +E081 Basic Privileges 03 INSERT privilege at the table level YES +E081 Basic Privileges 04 UPDATE privilege at the table level YES +E081 Basic Privileges 05 UPDATE privilege at the column level NO +E081 Basic Privileges 06 REFERENCES privilege at the table level YES +E081 Basic Privileges 07 REFERENCES privilege at the column level NO +E081 Basic Privileges 08 WITH GRANT OPTION NO +E091 Set functions YES +E091 Set functions 01 AVG YES +E091 Set functions 02 COUNT YES +E091 Set functions 03 MAX YES +E091 Set functions 04 MIN YES +E091 Set functions 05 SUM YES +E091 Set functions 06 ALL quantifier YES +E091 Set functions 07 DISTINCT quantifier YES +E101 Basic data manipulation YES +E101 Basic data manipulation 01 INSERT statement YES +E101 Basic data manipulation 03 Searched UPDATE statement YES +E101 Basic data manipulation 04 Searched DELETE statement YES +E111 Single row SELECT statement YES +E121 Basic cursor support NO +E121 Basic cursor supoprt 01 DECLARE CURSOR YES +E121 Basic cursor support 02 ORDER BY columns need not be in select list YES +E121 Basic cursor support 03 Value expressions in ORDER BY clause YES +E121 Basic cursor support 04 OPEN statement NO +E121 Basic cursor support 06 Positioned UPDATE statement NO +E121 Basic cursor support 07 Positioned DELETE statement NO +E121 Basic cursor support 08 CLOSE statement YES +E121 Basic cursor support 10 FETCH statement implicit NEXT YES +E121 Basic cursor support 17 WITH HOLD cursors NO +E131 Null value support (nulls in lieu of values) YES +E141 Basic integrity constraints YES +E141 Basic integrity constraints 01 NOT NULL constraints YES +E141 Basic integrity constraints 02 UNIQUE constraints of NOT NULL columns YES +E141 Basic integrity constraints 03 PRIMARY KEY constraints YES +E141 Basic integrity constraints 04 Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action YES +E141 Basic integrity constraints 06 CHECK constraints YES +E141 Basic integrity constraints 07 Column defaults YES +E141 Basic integrity constraints 08 NOT NULL inferred on PRIMARY KEY YES +E141 Basic integrity constraints 10 Names in a foreign key can be specified in any order YES +E151 Transaction support YES +E151 Transaction support 01 COMMIT statement YES +E151 Transaction support 02 ROLLBACK statement YES +E152 Basic SET TRANSACTION statement YES +E152 Basic SET TRANSACTION statement 01 SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause YES +E152 Basic SET TRANSACTION statement 02 SET TRANSACTION statement: READ ONLY and READ WRITE clauses YES +E153 Updatable queries with subqueries NO +E161 SQL comments using leading double minus YES +E171 SQLSTATE support NO +E182 Module language NO +F021 Basic information schema YES +F021 Basic information schema 01 COLUMNS view YES +F021 Basic information schema 02 TABLES view YES +F021 Basic information schema 03 VIEWS view YES +F021 Basic information schema 04 TABLE_CONSTRAINTS view YES +F021 Basic information schema 05 REFERENTIAL_CONSTRAINTS view YES +F021 Basic information schema 06 CHECK_CONSTRAINTS view YES +F031 Basic schema manipulation YES +F031 Basic schema manipulation 01 CREATE TABLE statement to create persistent base tables YES +F031 Basic schema manipulation 02 CREATE VIEW statement YES +F031 Basic schema manipulation 03 GRANT statement YES +F031 Basic schema manipulation 04 ALTER TABLE statement: ADD COLUMN clause YES +F031 Basic schema manipulation 13 DROP TABLE statement: RESTRICT clause YES +F031 Basic schema manipulation 16 DROP VIEW statement: RESTRICT clause YES +F031 Basic schema manipulation 19 REVOKE statement: RESTRICT clause YES +F032 CASCADE drop behavior YES +F033 ALTER TABLE statement: DROP COLUMN clause YES +F034 Extended REVOKE statement NO +F034 Extended REVOKE statement 01 REVOKE statement performed by other than the owner of a schema object NO +F034 Extended REVOKE statement 02 REVOKE statement: GRANT OPTION FOR clause NO +F034 Extended REVOKE statement 03 REVOKE statement to revoke a privilege that the grantee has WITH GRANT OPTION NO +F041 Basic joined table YES +F041 Basic joined table 01 Inner join (but not necessarily the INNER keyword) YES +F041 Basic joined table 02 INNER keyword YES +F041 Basic joined table 03 LEFT OUTER JOIN YES +F041 Basic joined table 04 RIGHT OUTER JOIN YES +F041 Basic joined table 05 Outer joins can be nested YES +F041 Basic joined table 07 The inner table in a left or right outer join can also be used in an inner join YES +F041 Basic joined table 08 All comparison operators are supported (rather than just =) YES +F051 Basic date and time YES +F051 Basic date and time 01 DATE data type (including support of DATE literal) YES +F051 Basic date and time 02 TIME data type (including support of TIME literal) with fractional seconds precision of at least 0 YES +F051 Basic date and time 03 TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 YES +F051 Basic date and time 04 Comparison predicate on DATE, TIME, and TIMESTAMP data types YES +F051 Basic date and time 05 Explicit CAST between datetime types and character types YES +F051 Basic date and time 06 CURRENT_DATE YES +F051 Basic date and time 07 LOCALTIME YES +F051 Basic date and time 08 LOCALTIMESTAMP YES +F052 Intervals and datetime arithmetic YES +F081 UNION and EXCEPT in views YES +F111 Isolation levels other than SERIALIZABLE NO +F111 Isolation levels other than SERIALIZABLE 01 READ UNCOMMITTED isolation level NO +F111 Isolation levels other than SERIALIZABLE 02 READ COMMITTED isolation level YES +F111 Isolation levels other than SERIALIZABLE 03 REPEATABLE READ isolation level NO +F121 Basic diagnostics management NO +F121 Basic diagnostics management 01 GET DIAGNOSTICS statement NO +F121 Basic diagnostics management 02 SET TRANSACTION statement: DIAGNOSTICS SIZE clause NO +F131 Grouped operations YES +F131 Grouped operations 01 WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views YES +F131 Grouped operations 02 Multiple tables supported in queries with grouped views YES +F131 Grouped operations 03 Set functions supported in queries with grouped views YES +F131 Grouped operations 04 Subqueries with GROUP BY and HAVING clauses and grouped views YES +F131 Grouped operations 05 Single row SELECT with GROUP BY and HAVING clauses and grouped views YES +F171 Multiple schemas per user YES +F181 Multiple module support NO +F191 Referential delete actions YES +F201 CAST function YES +F221 Explicit defaults YES +F222 INSERT statement: DEFAULT VALUES clause YES +F231 Privilege Tables YES +F231 Privilege Tables 01 TABLE_PRIVILEGES view YES +F231 Privilege Tables 02 COLUMN_PRIVILEGES view YES +F231 Privilege Tables 03 USAGE_PRIVILEGES view YES +F251 Domain support YES +F261 CASE expression YES +F261 CASE expression 01 Simple CASE YES +F261 CASE expression 02 Searched CASE YES +F261 CASE expression 03 NULLIF YES +F261 CASE expression 04 COALESCE YES +F271 Compound character literals YES +F281 LIKE enhancements YES +F291 UNIQUE predicate NO +F301 CORRESPONDING in query expressions NO +F302 INTERSECT table operator YES +F302 INTERSECT table operator 01 INTERSECT DISTINCT table operator YES +F302 INTERSECT table operator 02 INTERSECT ALL table operator YES +F304 EXCEPT ALL table operator YES +F311 Schema definition statement NO +F311 Schema definition statement 01 CREATE SCHEMA YES +F311 Schema definition statement 02 CREATE TABLE for persistent base tables YES +F311 Schema definition statement 03 CREATE VIEW YES +F311 Schema definition statement 04 CREATE VIEW: WITH CHECK OPTION NO +F311 Schema definition statement 05 GRANT statement YES +F321 User authorization YES +F341 Usage tables NO +F361 Subprogram support YES +F381 Extended schema manipulation YES +F381 Extended schema manipulation 01 ALTER TABLE statement: ALTER COLUMN clause YES +F381 Extended schema manipulation 02 ALTER TABLE statement: ADD CONSTRAINT clause YES +F381 Extended schema manipulation 03 ALTER TABLE statement: DROP CONSTRAINT clause YES +F391 Long identifiers YES +F401 Extended joined table YES +F401 Extended joined table 01 NATURAL JOIN YES +F401 Extended joined table 02 FULL OUTER JOIN YES +F401 Extended joined table 03 UNION JOIN YES +F401 Extended joined table 04 CROSS JOIN YES +F411 Time zone specification YES +F421 National character YES +F431 Read-only scrollable cursors NO +F431 Read-only scrollable cursors 01 FETCH with explicit NEXT YES +F431 Read-only scrollable cursors 02 FETCH FIRST NO +F431 Read-only scrollable cursors 03 FETCH LAST NO +F431 Read-only scrollable cursors 04 FETCH PRIOR YES +F431 Read-only scrollable cursors 05 FETCH ABSOLUTE NO +F431 Read-only scrollable cursors 06 FETCH RELATIVE YES +F441 Extended set function support YES +F451 Character set definition NO +F461 Named character sets NO +F471 Scalar subquery values YES +F481 Expanded NULL predicate YES +F491 Constraint management YES +F501 Features and conformance views NO +F501 Features and conformance views 01 SQL_FEATURES view YES +F501 Features and conformance views 02 SQL_SIZING view NO +F501 Features and conformance views 03 SQL_LANGUAGES view YES +F502 Enhanced documentation tables NO +F502 Enhanced documentation tables 01 SQL_SIZING_PROFILES view NO +F502 Enhanced documentation tables 02 SQL_IMPLEMENTATION_INFO view NO +F502 Enhanced documentation tables 03 SQL_PACKAGES view YES +F511 BIT data type YES +F521 Assertions NO +F531 Temporary tables YES +F555 Enhanced seconds precision YES +F561 Full value expressions YES +F571 Truth value tests YES +F591 Derived tables YES +F611 Indicator data types YES +F641 Row and table constructors NO +F651 Catalog name qualifiers YES +F661 Simple tables NO +F671 Subqueries in CHECK NO intentionally omitted +F691 Collation and translation NO +F701 Referential update actions YES +F711 ALTER domain YES +F721 Deferrable constraints NO foreign keys only +F731 INSERT column privileges NO +F741 Referential MATCH types NO no partial match yet +F751 View CHECK enhancements NO +F761 Session management YES +F771 Connection management YES +F781 Self-referencing operations YES +F791 Insensitive cursors YES +F801 Full set function YES +F811 Extended flagging NO +F812 Basic flagging NO +F813 Extended flagging for "Core SQL Flagging" and "Catalog Lookup" only NO +F821 Local table references NO +F831 Full cursor update NO +F831 Full cursor update 01 Updatable scrollable cursors NO +F831 Full cursor update 02 Updatable ordered cursors NO +S011 Distinct data types NO +S011 Distinct data types 01 USER_DEFINED_TYPES view NO +S023 Basic structured types NO +S024 Enhanced structured types NO +S041 Basic reference types NO +S043 Enhanced reference types NO +S051 Create table of type NO +S071 SQL paths in function and type name resolution YES +S081 Subtables NO +S091 Basic array support NO PostgreSQL arrays are different +S091 Basic array support 01 Arrays of built-in data types NO +S091 Basic array support 02 Arrays of distinct types NO +S091 Basic array support 03 Array expressions NO +S092 Arrays of user-defined types NO +S094 Arrays of reference types NO +S111 ONLY in query expressions YES +S151 Type predicate NO +S161 Subtype treatment NO +S201 SQL routines on arrays NO +S201 SQL routines on arrays 01 Array parameters NO +S201 SQL routines on arrays 02 Array as result type of functions NO +S211 User-defined cast functions YES +S231 Structured type locators NO +S232 Array locators NO +S241 Transform functions NO +S251 User-defined orderings NO +S261 Specific type method NO +T011 Timestamp in Information Schema NO +T031 BOOLEAN data type YES +T041 Basic LOB data type support NO +T041 Basic LOB data type support 01 BLOB data type NO +T041 Basic LOB data type support 02 CLOB data type NO +T041 Basic LOB data type support 03 POSITION, LENGTH, LOWER, TRIM, UPPER, and SUBSTRING functions for LOB data types NO +T041 Basic LOB data type support 04 Concatenation of LOB data types NO +T041 Basic LOB data type support 05 LOB locator: non-holdable NO +T042 Extended LOB data type support NO +T051 Row types NO +T111 Updatable joins, unions, and columns NO +T121 WITH (excluding RECURSIVE) in query expression NO +T131 Recursive query NO +T141 SIMILAR predicate YES +T151 DISTINCT predicate YES +T171 LIKE clause in table definition NO +T191 Referential action RESTRICT YES +T201 Comparable data types for referential constraints YES +T211 Basic trigger capability NO +T211 Basic trigger capability 01 Triggers activated on UPDATE, INSERT, or DELETE of one base table YES +T211 Basic trigger capability 02 BEFORE triggers YES +T211 Basic trigger capability 03 AFTER triggers YES +T211 Basic trigger capability 04 FOR EACH ROW triggers YES +T211 Basic trigger capability 05 Ability to specify a search condition that must be true before the trigger is invoked NO +T211 Basic trigger capability 06 Support for run-time rules for the interaction of triggers and constraints NO +T211 Basic trigger capability 07 TRIGGER privilege YES +T211 Basic trigger capability 08 Multiple triggers for the same the event are executed in the order in which they were created NO +T212 Enhanced trigger capability YES +T231 SENSITIVE cursors YES +T241 START TRANSACTION statement YES +T251 SET TRANSACTION statement: LOCAL option NO +T261 Chained transactions NO +T271 Savepoints NO +T281 SELECT privilege with column granularity NO +T301 Functional Dependencies NO +T312 OVERLAY function YES +T321 Basic SQL-invoked routines NO +T321 Basic SQL-invoked routines 01 User-defined functions with no overloading YES +T321 Basic SQL-invoked routines 02 User-defined stored procedures with no overloading NO +T321 Basic SQL-invoked routines 03 Function invocation YES +T321 Basic SQL-invoked routines 04 CALL statement NO +T321 Basic SQL-invoked routines 05 RETURN statement NO +T321 Basic SQL-invoked routines 06 ROUTINES view NO +T321 Basic SQL-invoked routines 07 PARAMETERS view NO +T322 Overloading of SQL-invoked functions and procedures YES +T323 Explicit security for external routines YES +T331 Basic roles NO +T332 Extended roles NO +T351 Bracketed SQL comments (/*...*/ comments) YES +T401 INSERT into a cursor NO +T411 UPDATE statement: SET ROW option NO +T431 CUBE and ROLLUP operations NO +T441 ABS and MOD functions YES +T461 Symmetric BETWEEN predicate NO +T471 Result sets return value NO +T491 LATERAL derived table NO +T501 Enhanced EXISTS predicate YES +T511 Transaction counts NO +T541 Updatable table references NO +T551 Optional key words for default syntax YES +T561 Holdable locators NO +T571 Array-returning external SQL-invoked functions NO +T581 Regular expression substring function YES +T591 UNIQUE constraints of possibly null columns YES +T601 Local cursor references NO diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh index a1c806cc7ec..049de88742c 100644 --- a/src/bin/initdb/initdb.sh +++ b/src/bin/initdb/initdb.sh @@ -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 -- GitLab