information_schema.sql

来自「PostgreSQL7.4.6 for Linux」· SQL 代码 · 共 1,693 行 · 第 1/5 页

SQL
1,693
字号
           CAST(null AS sql_identifier) AS collation_name,           CAST(null AS cardinal_number) AS numeric_precision,           CAST(null AS cardinal_number) AS numeric_precision_radix,           CAST(null AS cardinal_number) AS numeric_scale,           CAST(null AS cardinal_number) AS datetime_precision,           CAST(null AS character_data) AS interval_type,           CAST(null AS character_data) AS interval_precision,           CAST(current_database() AS sql_identifier) AS type_udt_catalog,           CAST(nt.nspname AS sql_identifier) AS type_udt_schema,           CAST(t.typname AS sql_identifier) AS type_udt_name,           CAST(null AS sql_identifier) AS scope_catalog,           CAST(null AS sql_identifier) AS scope_schema,           CAST(null AS sql_identifier) AS scope_name,           CAST(null AS cardinal_number) AS maximum_cardinality,           CAST(0 AS sql_identifier) AS dtd_identifier,           CAST(CASE WHEN l.lanname = 'sql' THEN 'SQL' ELSE 'EXTERNAL' END AS character_data)             AS routine_body,           CAST(             CASE WHEN u.usename = current_user THEN p.prosrc ELSE null END             AS character_data) AS routine_definition,           CAST(             CASE WHEN l.lanname = 'c' THEN p.prosrc ELSE null END             AS character_data) AS external_name,           CAST(upper(l.lanname) AS character_data) AS external_language,           CAST('GENERAL' AS character_data) AS parameter_style,           CAST(CASE WHEN p.provolatile = 'i' THEN 'YES' ELSE 'NO' END AS character_data) AS is_deterministic,           CAST('MODIFIES' AS character_data) AS sql_data_access,           CAST(CASE WHEN p.proisstrict THEN 'YES' ELSE 'NO' END AS character_data) AS is_null_call,           CAST(null AS character_data) AS sql_path,           CAST('YES' AS character_data) AS schema_level_routine,           CAST(0 AS cardinal_number) AS max_dynamic_result_sets,           CAST(null AS character_data) AS is_user_defined_cast,           CAST(null AS character_data) AS is_implicitly_invocable,           CAST(CASE WHEN p.prosecdef THEN 'DEFINER' ELSE 'INVOKER' END AS character_data) AS security_type,           CAST(null AS sql_identifier) AS to_sql_specific_catalog,           CAST(null AS sql_identifier) AS to_sql_specific_schema,           CAST(null AS sql_identifier) AS to_sql_specific_name,           CAST('NO' AS character_data) AS as_locator    FROM pg_namespace n, pg_proc p, pg_language l, pg_user u,         pg_type t, pg_namespace nt    WHERE n.oid = p.pronamespace AND p.prolang = l.oid AND p.proowner = u.usesysid          AND p.prorettype = t.oid AND t.typnamespace = nt.oid          AND (u.usename = current_user OR has_function_privilege(p.oid, 'EXECUTE'));GRANT SELECT ON routines TO PUBLIC;/* * 20.46 * SCHEMATA view */CREATE VIEW schemata AS    SELECT CAST(current_database() AS sql_identifier) AS catalog_name,           CAST(n.nspname AS sql_identifier) AS schema_name,           CAST(u.usename AS sql_identifier) AS schema_owner,           CAST(null AS sql_identifier) AS default_character_set_catalog,           CAST(null AS sql_identifier) AS default_character_set_schema,           CAST(null AS sql_identifier) AS default_character_set_name,           CAST(null AS character_data) AS sql_path    FROM pg_namespace n, pg_user u    WHERE n.nspowner = u.usesysid AND u.usename = current_user;GRANT SELECT ON schemata TO PUBLIC;/* * 20.47 * SQL_FEATURES table */CREATE TABLE sql_features (    feature_id          character_data,    feature_name        character_data,    sub_feature_id      character_data,    sub_feature_name    character_data,    is_supported        character_data,    is_verified_by      character_data,    comments            character_data) WITHOUT OIDS;-- Will be filled with external data by initdb.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 initdbINSERT INTO sql_implementation_info VALUES ('26',    'DEFAULT TRANSACTION ISOLATION', 2, NULL, 'READ COMMITTED; 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 */CREATE TABLE sql_languages (    sql_language_source         character_data,    sql_language_year           character_data,    sql_language_conformance    character_data,    sql_language_integrity      character_data,    sql_language_implementation character_data,    sql_language_binding_style  character_data,    sql_language_programming_language character_data) WITHOUT OIDS;INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'DIRECT', NULL);INSERT INTO sql_languages VALUES ('ISO 9075', '1999', 'CORE', NULL, NULL, 'EMBEDDED', 'C');GRANT SELECT ON sql_languages TO PUBLIC;/* * 20.50 * SQL_PACKAGES table */CREATE TABLE sql_packages (    feature_id      character_data,    feature_name    character_data,    is_supported    character_data,    is_verified_by  character_data,    comments        character_data) WITHOUT OIDS;INSERT INTO sql_packages VALUES ('PKG000', 'Core', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG001', 'Enhanced datetime facilities', 'YES', NULL, '');INSERT INTO sql_packages VALUES ('PKG002', 'Enhanced integrity management', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG003', 'OLAP facilities', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG004', 'PSM', 'NO', NULL, 'PL/pgSQL is similar.');INSERT INTO sql_packages VALUES ('PKG005', 'CLI', 'NO', NULL, 'ODBC is similar.');INSERT INTO sql_packages VALUES ('PKG006', 'Basic object support', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG007', 'Enhanced object support', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG008', 'Active database', 'NO', NULL, '');INSERT INTO sql_packages VALUES ('PKG009', 'SQL/MM support', 'NO', NULL, '');GRANT SELECT ON sql_packages TO PUBLIC;/* * 20.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', 1664, NULL); -- match MaxTupleAttributeNumberINSERT INTO sql_sizing VALUES (101,   'MAXIMUM COLUMNS IN TABLE', 1600, NULL); -- match MaxHeapAttributeNumberINSERT 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 */CREATE VIEW table_constraints AS    SELECT CAST(current_database() AS sql_identifier) AS constraint_catalog,           CAST(nc.nspname AS sql_identifier) AS constraint_schema,           CAST(c.conname AS sql_identifier) AS constraint_name,           CAST(current_database() AS sql_identifier) AS table_catalog,           CAST(nr.nspname AS sql_identifier) AS table_schema,           CAST(r.relname AS sql_identifier) AS table_name,           CAST(             CASE c.contype WHEN 'c' THEN 'CHECK'                            WHEN 'f' THEN 'FOREIGN KEY'                            WHEN 'p' THEN 'PRIMARY KEY'                            WHEN 'u' THEN 'UNIQUE' END             AS character_data) AS constraint_type,           CAST(CASE WHEN c.condeferrable THEN 'YES' ELSE 'NO' END AS character_data)             AS is_deferrable,           CAST(CASE WHEN c.condeferred THEN 'YES' ELSE 'NO' END AS character_data)             AS initially_deferred    FROM pg_namespace nc,         pg_namespace nr,         pg_constraint c,         pg_class r,         pg_user u    WHERE nc.oid = c.connamespace AND nr.oid = r.relnamespace          AND c.conrelid = r.oid AND r.relowner = u.usesysid          AND r.relkind = 'r'          AND u.usename = current_user;-- FIMXE: Not-null constraints are missing here.GRANT SELECT ON table_constraints TO PUBLIC;/* * 20.55 * TABLE_PRIVILEGES view */CREATE VIEW table_privileges AS    SELECT CAST(u_grantor.usename AS sql_identifier) AS grantor,           CAST(grantee.name AS sql_identifier) AS grantee,           CAST(current_database() AS sql_identifier) AS table_catalog,           CAST(nc.nspname AS sql_identifier) AS table_schema,           CAST(c.relname AS sql_identifier) AS table_name,           CAST(pr.type AS character_data) AS privilege_type,           CAST(             CASE WHEN aclcontains(c.relacl,                                   makeaclitem(grantee.usesysid, grantee.grosysid, u_grantor.usesysid, pr.type, true))                  THEN 'YES' ELSE 'NO' END AS character_data) AS is_grantable,           CAST('NO' AS character_data) AS with_hierarchy    FROM pg_class c,         pg_namespace nc,         pg_user u_grantor,         (           SELECT usesysid, 0, usename FROM pg_user           UNION ALL           SELECT 0, grosysid, groname FROM pg_group           UNION ALL           SELECT 0, 0, 'PUBLIC'         ) AS grantee (usesysid, grosysid, name),         (SELECT 'SELECT' UNION ALL          SELECT 'DELETE' UNION ALL          SELECT 'INSERT' UNION ALL          SELECT 'UPDATE' UNION ALL          SELECT 'REFERENCES' UNION ALL          SELECT 'RULE' UNION ALL          SELECT 'TRIGGER') AS pr (type)    WHERE c.relnamespace = nc.oid          AND c.relkind IN ('r', 'v')          AND aclcontains(c.relacl,                          makeaclitem(grantee.usesysid, grantee.grosysid, u_grantor.usesysid, pr.type, false))          AND (u_grantor.usename = current_user               OR grantee.name = current_user               OR grantee.name = 'PUBLIC');GRANT SELECT ON table_privileges TO PUBLIC;/* * 20.56 * TABLES view */CREATE VIEW tables AS    SELECT CAST(current_database() AS sql_identifier) AS table_catalog,           CAST(nc.nspname AS sql_identifier) AS table_schema,           CAST(c.relname AS sql_identifier) AS table_name,           CAST(             CASE WHEN nc.nspname LIKE 'pg!_temp!_%' ESCAPE '!' THEN 'LOCAL TEMPORARY'                  WHEN c.relkind = 'r' THEN 'BASE TABLE'                  WHEN c.relkind = 'v' THEN 'VIEW'                  ELSE null END             AS character_data) AS table_type,

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?