System Catalog Schema#

The Postgres pg_catalog schema provides access to a variety of database metadata useful for inspecting your database and also used by database tooling.

Doltgres vends the pg_catalog system catalog tables for compatibility with clients and libraries. Some tables contain no rows because the schema entities or configuration settings they model are unsupported or meaningless to the Doltgres server. Such empty tables are designated with ❌.

All tables and views from Postgres’s pg_catalog exist with the correct schema. In the tables below, the “Populated” column indicates how complete each relation’s data is:

  • ✅ means the relation contains substantially correct information; any limitations are described in the notes.
  • 🟠 means the relation contains data, but has major gaps or stub values, described in the notes.
  • ❌ means the relation exists with the correct schema but contains no rows.

If you need support for pg_catalog metadata that is available in Postgres, but not yet available in Doltgres, please open a GitHub issue to let us know what you need.

Tables#

TablePopulatedNotes and limitations
pg_aggregate
pg_amLists the standard Postgres access methods, though only btree indexes can be created
pg_amop
pg_amproc
pg_attrdefLists column default expressions; the adbin node-tree column is not populated
pg_attributeLists columns for all relations; ACL and options columns are defaulted
pg_auth_membersLists role memberships with grantor and admin option
pg_authidLists all roles and their attributes
pg_cast🟠Lists user-created casts only; the built-in casts that ship with Postgres are not included
pg_classLists tables, indexes, views, and sequences; some storage-related columns (relam, relacl, reloptions, etc.) are defaulted
pg_collationBuilt-in collations only; collation values are approximations since Doltgres does not yet apply collations
pg_constraintPrimary key, unique, check, and foreign key constraints; exclusion constraints are not supported
pg_conversion
pg_databaseLists all databases; collation and ACL columns are defaulted
pg_db_role_setting
pg_default_acl
pg_depend🟠Only sequence-to-column and column-default dependencies are emitted; view, constraint, index, and other dependency kinds are missing
pg_description
pg_enumLists labels for all user-created enum types
pg_event_trigger
pg_extensionLists installed extensions; the extension owner is not tracked
pg_foreign_data_wrapper
pg_foreign_server
pg_foreign_table
pg_indexLists all indexes; expression and predicate node-tree columns are not populated
pg_inherits
pg_init_privs
pg_languageLists the internal, c, sql, and plpgsql languages; owner and handler function references are NULL
pg_largeobject
pg_largeobject_metadata
pg_namespaceLists all schemas; owner and ACL columns are not populated
pg_opclassbtree and hash operator classes only; gin, gist, brin, and spgist classes are not included
pg_operator
pg_opfamilybtree and hash operator families only; gin, gist, brin, and spgist families are not included
pg_parameter_acl
pg_partitioned_table
pg_policy
pg_proc🟠Lists user-created functions and procedures; the built-in functions that ship with Postgres are not included
pg_publication
pg_publication_namespace
pg_publication_rel
pg_range
pg_replication_origin
pg_rewrite🟠Contains a rule entry per view, but the rule definition (ev_action) is a placeholder
pg_seclabel
pg_sequenceLists all sequences with their full parameters
pg_shdepend
pg_shdescription
pg_shseclabel
pg_statistic
pg_statistic_ext
pg_statistic_ext_data
pg_subscription
pg_subscription_rel
pg_tablespaceContains the standard pg_default and pg_global entries; tablespaces are not otherwise supported
pg_transform
pg_triggerLists user-created triggers; constraint linkage, UPDATE OF column lists, and WHEN conditions are not populated
pg_ts_config🟠Only the built-in simple configuration; language-specific configurations are not included
pg_ts_config_map
pg_ts_dict🟠Only the built-in simple dictionary; language-specific stemming dictionaries are not included
pg_ts_parserContains the single built-in default parser, matching Postgres
pg_ts_template🟠Only the simple template; ispell, snowball, and other built-in templates are not included
pg_typeLists built-in and user-created types; type default and ACL columns are not populated
pg_user_mapping

Views#

ViewPopulatedNotes and limitations
pg_available_extension_versions
pg_available_extensions
pg_backend_memory_contexts
pg_config🟠Contains the standard rows, but the values are static placeholders for a default Postgres install layout
pg_cursors
pg_file_settings
pg_groupLists non-login roles and their members
pg_hba_file_rules
pg_ident_file_mappings
pg_indexesLists all indexes with their definitions
pg_locks
pg_matviews
pg_policies
pg_prepared_statements
pg_prepared_xacts
pg_publication_tables
pg_replication_origin_status
pg_replication_slots
pg_rolesLists all roles; passwords are masked, matching Postgres
pg_rules
pg_seclabels
pg_sequencesLists all sequences with parameters and last value; sequenceowner is NULL
pg_settingsLists all configuration parameters; min_val, max_val, enumvals, and source-location columns are NULL
pg_shadowLists login roles; per-role settings (useconfig) are NULL
pg_shmem_allocations
pg_stat_activity
pg_stat_all_indexes🟠One row per real index, but all statistics counters are zero and timestamps are NULL
pg_stat_all_tables🟠One row per real table, but all statistics counters are zero and timestamps are NULL
pg_stat_archiver🟠Single row with zeroed counters; Doltgres has no WAL archiver
pg_stat_bgwriter🟠Single row with zeroed counters; Doltgres has no background writer
pg_stat_database🟠One row per database, but all counters are zero and timestamps are NULL
pg_stat_database_conflicts🟠One row per database with zeroed conflict counters
pg_stat_gssapi
pg_stat_ioNot implemented; this view was added in Postgres 16
pg_stat_progress_analyze
pg_stat_progress_basebackup
pg_stat_progress_cluster
pg_stat_progress_copy
pg_stat_progress_create_index
pg_stat_progress_vacuum
pg_stat_recovery_prefetch🟠Single row with zeroed counters; Doltgres does not perform WAL recovery prefetching
pg_stat_replication
pg_stat_replication_slots
pg_stat_slru🟠One row per SLRU cache name with zeroed counters; Doltgres has no SLRU caches
pg_stat_ssl
pg_stat_subscription
pg_stat_subscription_stats
pg_stat_sys_indexes🟠One row per real index, but all statistics counters are zero and timestamps are NULL
pg_stat_sys_tables🟠One row per real table, but all statistics counters are zero and timestamps are NULL
pg_stat_user_functions
pg_stat_user_indexes🟠One row per real index, but all statistics counters are zero and timestamps are NULL
pg_stat_user_tables🟠One row per real table, but all statistics counters are zero and timestamps are NULL
pg_stat_wal🟠Single row with zeroed counters; WAL statistics are not tracked
pg_stat_wal_receiver
pg_stat_xact_all_tables🟠One row per real table, but all statistics counters are zero
pg_stat_xact_sys_tables🟠One row per real table, but all statistics counters are zero
pg_stat_xact_user_functions
pg_stat_xact_user_tables🟠One row per real table, but all statistics counters are zero
pg_statio_all_indexes🟠One row per real index, but all block I/O counters are zero
pg_statio_all_sequences🟠One row per real sequence, but all block I/O counters are zero
pg_statio_all_tables🟠One row per real table, but all block I/O counters are zero
pg_statio_sys_indexes🟠One row per real index, but all block I/O counters are zero
pg_statio_sys_sequences🟠One row per real sequence, but all block I/O counters are zero
pg_statio_sys_tables🟠One row per real table, but all block I/O counters are zero
pg_statio_user_indexes🟠One row per real index, but all block I/O counters are zero
pg_statio_user_sequences🟠One row per real sequence, but all block I/O counters are zero
pg_statio_user_tables🟠One row per real table, but all block I/O counters are zero
pg_stats
pg_stats_ext
pg_stats_ext_exprs
pg_tablesLists all tables; information_schema tables are excluded
pg_timezone_abbrevs🟠Contains a subset (about 47) of the roughly 200 abbreviations Postgres ships
pg_timezone_namesFull timezone list with current offset, abbreviation, and DST flag for each zone
pg_userLists login roles; passwords are masked, matching Postgres
pg_user_mappings
pg_viewsLists all views with their definitions; viewowner is empty