diff --git a/src/backend/catalog/information_schema.sql b/src/backend/catalog/information_schema.sql index ba4702df85856edf40ae4330535a89f47b43abf9..1a39d6aec3535a87fefeb54d6b56bf295750b397 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.2 2003/01/14 23:19:34 petere Exp $ + * $Id: information_schema.sql,v 1.3 2003/01/15 23:37:27 petere Exp $ */ @@ -322,6 +322,38 @@ CREATE TABLE sql_features ( GRANT SELECT ON sql_features TO PUBLIC; +/* + * 20.48 + * SQL_IMPLEMENTATION_INFO table + */ + +-- Note: Implementation information items are defined in ISO 9075-3:1999, +-- clause 7.1. + +CREATE TABLE sql_implementation_info ( + implementation_info_id character_data, + implementation_info_name character_data, + integer_value cardinal_number, + character_value character_data, + comments character_data +) WITHOUT OIDS; + +INSERT INTO sql_implementation_info VALUES ('10003', 'CATALOG NAME', NULL, 'Y', NULL); +INSERT INTO sql_implementation_info VALUES ('10004', 'COLLATING SEQUENCE', NULL, '', 'not supported'); +INSERT INTO sql_implementation_info VALUES ('23', 'CURSOR COMMIT BEHAVIOR', 1, NULL, 'close cursors and retain prepared statements'); +INSERT INTO sql_implementation_info VALUES ('2', 'DATA SOURCE NAME', NULL, '', NULL); +INSERT INTO sql_implementation_info VALUES ('17', 'DBMS NAME', NULL, (select trim(trailing ' ' from substring(version() from '^[^0-9]*'))), NULL); +INSERT INTO sql_implementation_info VALUES ('18', 'DBMS VERSION', NULL, '???', NULL); -- filled by initdb +INSERT INTO sql_implementation_info VALUES ('26', 'DEFAULT TRANSACTION ISOLATION', 2, NULL, 'READ COMMITED; user-settable'); +INSERT INTO sql_implementation_info VALUES ('28', 'IDENTIFIER CASE', 3, NULL, 'stored in mixed case - case sensitive'); +INSERT INTO sql_implementation_info VALUES ('85', 'NULL COLLATION', 0, NULL, 'nulls higher than non-nulls'); +INSERT INTO sql_implementation_info VALUES ('13', 'SERVER NAME', NULL, '', NULL); +INSERT INTO sql_implementation_info VALUES ('94', 'SPECIAL CHARACTERS', NULL, '', 'all non-ASCII characters allowed'); +INSERT INTO sql_implementation_info VALUES ('46', 'TRANSACTION CAPABLE', 2, NULL, 'both DML and DDL'); + +GRANT SELECT ON sql_implementation_info TO PUBLIC; + + /* * 20.49 * SQL_LANGUAGES table @@ -370,6 +402,72 @@ INSERT INTO sql_packages VALUES ('PKG009', 'SQL/MM support', 'NO', NULL, ''); GRANT SELECT ON sql_packages TO PUBLIC; +/* + * 20.51 + * SQL_SIZING table + */ + +-- Note: Sizing items are defined in ISO 9075-3:1999, clause 7.2. + +CREATE TABLE sql_sizing ( + sizing_id cardinal_number, + sizing_name character_data, + supported_value cardinal_number, + comments character_data +) WITHOUT OIDS; + +INSERT INTO sql_sizing VALUES (34, 'MAXIMUM CATALOG NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (30, 'MAXIMUM COLUMN NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (97, 'MAXIMUM COLUMNS IN GROUP BY', 0, NULL); +INSERT INTO sql_sizing VALUES (99, 'MAXIMUM COLUMNS IN ORDER BY', 0, NULL); +INSERT INTO sql_sizing VALUES (100, 'MAXIMUM COLUMNS IN SELECT', 0, NULL); +INSERT INTO sql_sizing VALUES (101, 'MAXIMUM COLUMNS IN TABLE', 1600, NULL); -- match MaxHeapAttributeNumber +INSERT INTO sql_sizing VALUES (1, 'MAXIMUM CONCURRENT ACTIVITIES', 0, NULL); +INSERT INTO sql_sizing VALUES (31, 'MAXIMUM CURSOR NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (0, 'MAXIMUM DRIVER CONNECTIONS', NULL, NULL); +INSERT INTO sql_sizing VALUES (10005, 'MAXIMUM IDENTIFIER LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (32, 'MAXIMUM SCHEMA NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (20000, 'MAXIMUM STATEMENT OCTETS', 0, NULL); +INSERT INTO sql_sizing VALUES (20001, 'MAXIMUM STATEMENT OCTETS DATA', 0, NULL); +INSERT INTO sql_sizing VALUES (20002, 'MAXIMUM STATEMENT OCTETS SCHEMA', 0, NULL); +INSERT INTO sql_sizing VALUES (35, 'MAXIMUM TABLE NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (106, 'MAXIMUM TABLES IN SELECT', 0, NULL); +INSERT INTO sql_sizing VALUES (107, 'MAXIMUM USER NAME LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (25000, 'MAXIMUM CURRENT DEFAULT TRANSFORM GROUP LENGTH', NULL, NULL); +INSERT INTO sql_sizing VALUES (25001, 'MAXIMUM CURRENT TRANSFORM GROUP LENGTH', NULL, NULL); +INSERT INTO sql_sizing VALUES (25002, 'MAXIMUM CURRENT PATH LENGTH', 0, NULL); +INSERT INTO sql_sizing VALUES (25003, 'MAXIMUM CURRENT ROLE LENGTH', NULL, NULL); +INSERT INTO sql_sizing VALUES (25004, 'MAXIMUM SESSION USER LENGTH', 63, NULL); +INSERT INTO sql_sizing VALUES (25005, 'MAXIMUM SYSTEM USER LENGTH', 63, NULL); + +UPDATE sql_sizing + SET supported_value = (SELECT typlen-1 FROM pg_catalog.pg_type WHERE typname = 'name'), + comments = 'Might be less, depending on character set.' + WHERE supported_value = 63; + +GRANT SELECT ON sql_sizing TO PUBLIC; + + +/* + * 20.52 + * SQL_SIZING_PROFILES table + */ + +-- The data in this table are defined by various profiles of SQL. +-- Since we don't have any information about such profiles, we provide +-- an empty table. + +CREATE TABLE sql_sizing_profiles ( + sizing_id cardinal_number, + sizing_name character_data, + profile_id character_data, + required_value cardinal_number, + comments character_data +) WITHOUT OIDS; + +GRANT SELECT ON sql_sizing_profiles TO PUBLIC; + + /* * 20.53 * TABLE_CONSTRAINTS view diff --git a/src/backend/catalog/sql_features.txt b/src/backend/catalog/sql_features.txt index e3231be377c3a681314b61b31d5d6154a62d89b1..90076de6bde5871d396f3751331116870c7a562d 100644 --- a/src/backend/catalog/sql_features.txt +++ b/src/backend/catalog/sql_features.txt @@ -227,13 +227,13 @@ 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 YES 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 02 SQL_SIZING view YES 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 YES +F502 Enhanced documentation tables 01 SQL_SIZING_PROFILES view YES +F502 Enhanced documentation tables 02 SQL_IMPLEMENTATION_INFO view YES F502 Enhanced documentation tables 03 SQL_PACKAGES view YES F511 BIT data type YES F521 Assertions NO diff --git a/src/bin/initdb/initdb.sh b/src/bin/initdb/initdb.sh index 049de88742c2c61e48397dbdfb147c6b9b8971a0..c076b488b72eab64955134acb047a450553db1e1 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.179 2003/01/14 23:19:34 petere Exp $ +# $Header: /cvsroot/pgsql/src/bin/initdb/Attic/initdb.sh,v 1.180 2003/01/15 23:37:28 petere Exp $ # #------------------------------------------------------------------------- @@ -1045,6 +1045,15 @@ echo "ok" $ECHO_N "creating information schema... "$ECHO_C "$PGPATH"/postgres $PGSQL_OPT -N template1 > /dev/null < "$datadir"/information_schema.sql || exit_nicely ( + # Format version number to format required by information schema (09.08.0007abc). + major_version=`echo $VERSION | sed 's/^\([0-9]*\).*/00\1/;s/.*\(..\)$/\1/'` + minor_version=`echo $VERSION | sed 's/^[0-9]*\.\([0-9]*\).*/00\1/;s/.*\(..\)$/\1/'` + micro_version=`echo $VERSION | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/0000\1/;t L;s/.*/0000/;q;: L;s/.*\(....\)$/\1/'` + letter_version=`echo $VERSION | sed 's/^.*[0-9]\([^0-9]*\)$/\1/'` + combined_version="$major_version.$minor_version.$micro_version$letter_version" + + echo "UPDATE information_schema.sql_implementation_info SET character_value = '$combined_version' WHERE implementation_info_name = 'DBMS VERSION';" + 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 "\."