Chapter 40. The Information Schema

Table of Contents

40.1. The Schema
40.2. Data Types
40.3. information_schema_catalog_name
40.4. administrable_role_​authorizations
40.5. applicable_roles
40.6. attributes
40.7. character_sets
40.8. check_constraint_routine_usage
40.9. check_constraints
40.10. collations
40.11. collation_character_set_​applicability
40.12. column_column_usage
40.13. column_domain_usage
40.14. column_options
40.15. column_privileges
40.16. column_udt_usage
40.17. columns
40.18. constraint_column_usage
40.19. constraint_table_usage
40.20. data_type_privileges
40.21. domain_constraints
40.22. domain_udt_usage
40.23. domains
40.24. element_types
40.25. enabled_roles
40.26. foreign_data_wrapper_options
40.27. foreign_data_wrappers
40.28. foreign_server_options
40.29. foreign_servers
40.30. foreign_table_options
40.31. foreign_tables
40.32. key_column_usage
40.33. parameters
40.34. referential_constraints
40.35. role_column_grants
40.36. role_routine_grants
40.37. role_table_grants
40.38. role_udt_grants
40.39. role_usage_grants
40.40. routine_column_usage
40.41. routine_privileges
40.42. routine_routine_usage
40.43. routine_sequence_usage
40.44. routine_table_usage
40.45. routines
40.46. schemata
40.47. sequences
40.48. sql_features
40.49. sql_implementation_info
40.50. sql_parts
40.51. sql_sizing
40.52. table_constraints
40.53. table_privileges
40.54. tables
40.55. transforms
40.56. triggered_update_columns
40.57. triggers
40.58. udt_privileges
40.59. usage_privileges
40.60. user_defined_types
40.61. user_mapping_options
40.62. user_mappings
40.63. view_column_usage
40.64. view_routine_usage
40.65. view_table_usage
40.66. views

The information schema consists of a set of views that contain information about the objects defined in the current database. The information schema is defined in the SQL standard and can therefore be expected to be portable and remain stable — unlike the system catalogs, which are specific to Postgres Pro and are modeled after implementation concerns. The information schema views do not, however, contain information about Postgres Pro-specific features; to inquire about those you need to query the system catalogs or other Postgres Pro-specific views.

Note

When querying the database for constraint information, it is possible for a standard-compliant query that expects to return one row to return several. This is because the SQL standard requires constraint names to be unique within a schema, but Postgres Pro does not enforce this restriction. Postgres Pro automatically-generated constraint names avoid duplicates in the same schema, but users can specify such duplicate names.

This problem can appear when querying information schema views such as check_constraint_routine_usage, check_constraints, domain_constraints, and referential_constraints. Some other views have similar issues but contain the table name to help distinguish duplicate rows, e.g., constraint_column_usage, constraint_table_usage, table_constraints.