Add sql_features table to information schema. Generate the features list
authorPeter Eisentraut
Tue, 14 Jan 2003 23:19:34 +0000 (23:19 +0000)
committerPeter Eisentraut
Tue, 14 Jan 2003 23:19:34 +0000 (23:19 +0000)
in the documentation from that same data.

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

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