information_schema.sql

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

SQL
1,693
字号
    WHERE nr.oid = r.relnamespace          AND r.oid = a.attrelid          AND r.oid = c.conrelid          AND nc.oid = c.connamespace          AND c.conkey[pos.n] = a.attnum          AND NOT a.attisdropped          AND c.contype IN ('p', 'u', 'f')          AND r.relkind = 'r'          AND r.relowner = u.usesysid          AND u.usename = current_user;GRANT SELECT ON key_column_usage TO PUBLIC;/* * 20.33 * PARAMETERS view */CREATE VIEW parameters AS    SELECT CAST(current_database() AS sql_identifier) AS specific_catalog,           CAST(n.nspname AS sql_identifier) AS specific_schema,           CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier) AS specific_name,           CAST(pos.n AS cardinal_number) AS ordinal_position,           CAST('IN' AS character_data) AS parameter_mode,           CAST('NO' AS character_data) AS is_result,           CAST('NO' AS character_data) AS as_locator,           CAST(null AS sql_identifier) AS parameter_name,           CAST(             CASE WHEN t.typelem <> 0 AND t.typlen = -1 THEN 'ARRAY'                  WHEN nt.nspname = 'pg_catalog' THEN format_type(t.oid, null)                  ELSE 'USER-DEFINED' END AS character_data)             AS data_type,           CAST(null AS cardinal_number) AS character_maximum_length,           CAST(null AS cardinal_number) AS character_octet_length,           CAST(null AS sql_identifier) AS character_set_catalog,           CAST(null AS sql_identifier) AS character_set_schema,           CAST(null AS sql_identifier) AS character_set_name,           CAST(null AS sql_identifier) AS collation_catalog,           CAST(null AS sql_identifier) AS collation_schema,           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 udt_catalog,           CAST(nt.nspname AS sql_identifier) AS udt_schema,           CAST(t.typname AS sql_identifier) AS 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(pos.n AS sql_identifier) AS dtd_identifier    FROM pg_namespace n, pg_proc p, pg_type t, pg_namespace nt, pg_user u,         _pg_keypositions() AS pos(n)    WHERE n.oid = p.pronamespace AND p.pronargs >= pos.n          AND p.proargtypes[pos.n-1] = t.oid AND t.typnamespace = nt.oid          AND p.proowner = u.usesysid          AND (u.usename = current_user OR has_function_privilege(p.oid, 'EXECUTE'));GRANT SELECT ON parameters TO PUBLIC;/* * 20.35 * REFERENTIAL_CONSTRAINTS view */CREATE FUNCTION _pg_keyissubset(smallint[], smallint[]) RETURNS boolean    LANGUAGE sql    IMMUTABLE    RETURNS NULL ON NULL INPUT    AS 'select $1[1] is null or ($1[1] = any ($2) and coalesce(information_schema._pg_keyissubset($1[2:pg_catalog.array_upper($1,1)], $2), true))';CREATE FUNCTION _pg_keysequal(smallint[], smallint[]) RETURNS boolean    LANGUAGE sql    IMMUTABLE    RETURNS NULL ON NULL INPUT    AS 'select information_schema._pg_keyissubset($1, $2) and information_schema._pg_keyissubset($2, $1)';CREATE VIEW referential_constraints AS    SELECT CAST(current_database() AS sql_identifier) AS constraint_catalog,           CAST(ncon.nspname AS sql_identifier) AS constraint_schema,           CAST(con.conname AS sql_identifier) AS constraint_name,           CAST(             CASE WHEN npkc.nspname IS NULL THEN NULL                  ELSE current_database() END             AS sql_identifier) AS unique_constraint_catalog,           CAST(npkc.nspname AS sql_identifier) AS unique_constraint_schema,           CAST(pkc.conname AS sql_identifier) AS unique_constraint_name,           CAST(             CASE con.confmatchtype WHEN 'f' THEN 'FULL'                                    WHEN 'p' THEN 'PARTIAL'                                    WHEN 'u' THEN 'NONE' END             AS character_data) AS match_option,           CAST(             CASE con.confupdtype WHEN 'c' THEN 'CASCADE'                                  WHEN 'n' THEN 'SET NULL'                                  WHEN 'd' THEN 'SET DEFAULT'                                  WHEN 'r' THEN 'RESTRICT'                                  WHEN 'a' THEN 'NO ACTION' END             AS character_data) AS update_rule,           CAST(             CASE con.confdeltype WHEN 'c' THEN 'CASCADE'                                  WHEN 'n' THEN 'SET NULL'                                  WHEN 'd' THEN 'SET DEFAULT'                                  WHEN 'r' THEN 'RESTRICT'                                  WHEN 'a' THEN 'NO ACTION' END             AS character_data) AS delete_rule    FROM (pg_namespace ncon INNER JOIN pg_constraint con ON ncon.oid = con.connamespace         INNER JOIN pg_class c ON con.conrelid = c.oid         INNER JOIN pg_user u ON c.relowner = u.usesysid)         LEFT JOIN         (pg_constraint pkc INNER JOIN pg_namespace npkc ON pkc.connamespace = npkc.oid)         ON con.confrelid = pkc.conrelid AND _pg_keysequal(con.confkey, pkc.conkey)    WHERE c.relkind = 'r'          AND con.contype = 'f'          AND (pkc.contype IN ('p', 'u') OR pkc.contype IS NULL)          AND u.usename = current_user;GRANT SELECT ON referential_constraints TO PUBLIC;/* * 20.36 * ROLE_COLUMN_GRANTS view */CREATE VIEW role_column_grants AS    SELECT CAST(u_grantor.usename AS sql_identifier) AS grantor,           CAST(g_grantee.groname 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(a.attname AS sql_identifier) AS column_name,           CAST(pr.type AS character_data) AS privilege_type,           CAST(             CASE WHEN aclcontains(c.relacl,                                   makeaclitem(0, g_grantee.grosysid, u_grantor.usesysid, pr.type, true))                  THEN 'YES' ELSE 'NO' END AS character_data) AS is_grantable    FROM pg_attribute a,         pg_class c,         pg_namespace nc,         pg_user u_grantor,         pg_group g_grantee,         (SELECT 'SELECT' UNION ALL          SELECT 'INSERT' UNION ALL          SELECT 'UPDATE' UNION ALL          SELECT 'REFERENCES') AS pr (type)    WHERE a.attrelid = c.oid          AND c.relnamespace = nc.oid          AND a.attnum > 0          AND NOT a.attisdropped          AND c.relkind IN ('r', 'v')          AND aclcontains(c.relacl,                          makeaclitem(0, g_grantee.grosysid, u_grantor.usesysid, pr.type, false))          AND g_grantee.groname IN (SELECT role_name FROM enabled_roles);GRANT SELECT ON role_column_grants TO PUBLIC;/* * 20.37 * ROLE_ROUTINE_GRANTS view */CREATE VIEW role_routine_grants AS    SELECT CAST(u_grantor.usename AS sql_identifier) AS grantor,           CAST(g_grantee.groname AS sql_identifier) AS grantee,           CAST(current_database() AS sql_identifier) AS specific_catalog,           CAST(n.nspname AS sql_identifier) AS specific_schema,           CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier) AS specific_name,           CAST(current_database() AS sql_identifier) AS routine_catalog,           CAST(n.nspname AS sql_identifier) AS routine_schema,           CAST(p.proname AS sql_identifier) AS routine_name,           CAST('EXECUTE' AS character_data) AS privilege_type,           CAST(             CASE WHEN aclcontains(p.proacl,                                   makeaclitem(0, g_grantee.grosysid, u_grantor.usesysid, 'EXECUTE', true))                  THEN 'YES' ELSE 'NO' END AS character_data) AS is_grantable    FROM pg_proc p,         pg_namespace n,         pg_user u_grantor,         pg_group g_grantee    WHERE p.pronamespace = n.oid          AND aclcontains(p.proacl,                          makeaclitem(0, g_grantee.grosysid, u_grantor.usesysid, 'EXECUTE', false))          AND g_grantee.groname IN (SELECT role_name FROM enabled_roles);GRANT SELECT ON role_routine_grants TO PUBLIC;/* * 20.38 * ROLE_TABLE_GRANTS view */CREATE VIEW role_table_grants AS    SELECT CAST(u_grantor.usename AS sql_identifier) AS grantor,           CAST(g_grantee.groname 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(0, g_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,         pg_group g_grantee,         (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(0, g_grantee.grosysid, u_grantor.usesysid, pr.type, false))          AND g_grantee.groname IN (SELECT role_name FROM enabled_roles);GRANT SELECT ON role_table_grants TO PUBLIC;/* * 20.40 * ROLE_USAGE_GRANTS view */-- See USAGE_PRIVILEGES.CREATE VIEW role_usage_grants AS    SELECT CAST(null AS sql_identifier) AS grantor,           CAST(null AS sql_identifier) AS grantee,           CAST(current_database() AS sql_identifier) AS object_catalog,           CAST(null AS sql_identifier) AS object_schema,           CAST(null AS sql_identifier) AS object_name,           CAST(null AS character_data) AS object_type,           CAST('USAGE' AS character_data) AS privilege_type,           CAST(null AS character_data) AS is_grantable    WHERE false;GRANT SELECT ON role_usage_grants TO PUBLIC;/* * 20.43 * ROUTINE_PRIVILEGES view */CREATE VIEW routine_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 specific_catalog,           CAST(n.nspname AS sql_identifier) AS specific_schema,           CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier) AS specific_name,           CAST(current_database() AS sql_identifier) AS routine_catalog,           CAST(n.nspname AS sql_identifier) AS routine_schema,           CAST(p.proname AS sql_identifier) AS routine_name,           CAST('EXECUTE' AS character_data) AS privilege_type,           CAST(             CASE WHEN aclcontains(p.proacl,                                   makeaclitem(grantee.usesysid, grantee.grosysid, u_grantor.usesysid, 'EXECUTE', true))                  THEN 'YES' ELSE 'NO' END AS character_data) AS is_grantable    FROM pg_proc p,         pg_namespace n,         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)    WHERE p.pronamespace = n.oid          AND aclcontains(p.proacl,                          makeaclitem(grantee.usesysid, grantee.grosysid, u_grantor.usesysid, 'EXECUTE', false))          AND (u_grantor.usename = current_user               OR grantee.name = current_user               OR grantee.name = 'PUBLIC');GRANT SELECT ON routine_privileges TO PUBLIC;/* * 20.45 * ROUTINES view */CREATE VIEW routines AS    SELECT CAST(current_database() AS sql_identifier) AS specific_catalog,           CAST(n.nspname AS sql_identifier) AS specific_schema,           CAST(p.proname || '_' || CAST(p.oid AS text) AS sql_identifier) AS specific_name,           CAST(current_database() AS sql_identifier) AS routine_catalog,           CAST(n.nspname AS sql_identifier) AS routine_schema,           CAST(p.proname AS sql_identifier) AS routine_name,           CAST('FUNCTION' AS character_data) AS routine_type,           CAST(null AS sql_identifier) AS module_catalog,           CAST(null AS sql_identifier) AS module_schema,           CAST(null AS sql_identifier) AS module_name,           CAST(null AS sql_identifier) AS udt_catalog,           CAST(null AS sql_identifier) AS udt_schema,           CAST(null AS sql_identifier) AS udt_name,           CAST(             CASE WHEN t.typelem <> 0 AND t.typlen = -1 THEN 'ARRAY'                  WHEN nt.nspname = 'pg_catalog' THEN format_type(t.oid, null)                  ELSE 'USER-DEFINED' END AS character_data)             AS data_type,           CAST(null AS cardinal_number) AS character_maximum_length,           CAST(null AS cardinal_number) AS character_octet_length,           CAST(null AS sql_identifier) AS character_set_catalog,           CAST(null AS sql_identifier) AS character_set_schema,           CAST(null AS sql_identifier) AS character_set_name,           CAST(null AS sql_identifier) AS collation_catalog,           CAST(null AS sql_identifier) AS collation_schema,

⌨️ 快捷键说明

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