Files
playbook/antigravity-awesome-skills/skills/postgresql-cli/references/meta-commands-inspection.md
T
2026-07-01 16:02:41 +00:00

7.1 KiB

Part of the psql meta-command reference. See also: meta-commands-core.md, meta-commands-formatting.md

psql Meta-Commands — Object Inspection (\d family)

This document covers all \d family commands for inspecting database objects, including tables, indexes, functions, schemas, and more.

Table of Contents


Object Inspection (\d family)

All \d commands accept these common modifiers:

  • + — extra info (size, description, ownership)
  • S — include system objects
  • x — expanded display (must follow S or +, NOT immediately after \d)

Important: The x modifier for expanded display must appear after S or + (e.g., \dt+x), because \dx is a separate command that lists installed extensions. Writing \dx when you meant expanded display will show extensions instead.

All accept a pattern parameter with wildcard matching (*, ?, regex). See Patterns section below.

\d[Sx+] [ pattern ]

Without a pattern: equivalent to \dtvmsE (lists all visible tables, views, materialized views, sequences, and foreign tables).

With a pattern: shows columns, types, tablespace, special attributes (NOT NULL, defaults), indexes, constraints, rules, triggers. For foreign tables, shows the foreign server.

\d+ adds: column comments, OID presence, view definition, replica identity, access method.

Table-type listing commands

\dE / \di / \dm / \ds / \dt / \dv — List foreign tables, indexes, materialized views, sequences, tables, or views. Combine letters: \dti lists both tables and indexes.

\d+ adds: persistence status (permanent/temporary/unlogged), physical size on disk, description.

Aggregate and function listings

Command Shows
\da[Sx] [pattern] Aggregate functions with return type and input types
\df[anptwSx+] [pattern [arg_pattern ...]] Functions. Filter by type: a=agg, n=normal, p=procedure, t=trigger, w=window. Additional args match parameter type names. Use - as last arg_pattern to prevent matching functions with extra args. Example: \df * integer lists functions whose first argument is integer.
\do[Sx+] [pattern [arg_pattern [arg_pattern]]] Operators with operand/result types. One arg matches prefix operators; two args match binary operators. Use - for unused operand. Example: \do + integer integer lists + operators with two integer args.

Schema and type listings

Command Shows
\dn[Sx+] [pattern] Schemas (namespaces)
\dT[Sx+] [pattern] Data types (\dT+ shows internal name, size, enum values, permissions)
\dC[x+] [pattern] Type casts (\dC+ shows leakproof status and description)
\dD[Sx+] [pattern] Domains (\dD+ shows permissions and description)
\dO[Sx+] [pattern] Collations (only collations usable with current database encoding — results vary by database)

Access method and operator listings

Command Shows
\dA[x+] [pattern] Access methods
\dAc[x+] [am_pattern [type_pattern]] Operator classes
\dAf[x+] [am_pattern [type_pattern]] Operator families
\dAo[x+] [am_pattern [family_pattern]] Operators in families
\dAp[x+] [am_pattern [family_pattern]] Support functions in families

Configuration and privilege listings

Command Shows
\dconfig[x+] [pattern] Server config parameters. Without a pattern, shows only non-default values. \dconfig+ adds data type, context, and access privileges.
\dp[Sx] [pattern] Table/view/sequence privileges
\ddp[x] [pattern] Default access privileges
\drg[Sx] [pattern] Granted role memberships (ADMIN, INHERIT, SET options, grantor)
\drds[x] [role_pattern [db_pattern]] Per-role and per-database config settings
\z[Sx] [pattern] Alias for \dp

Replication and partition listings

Command Shows
\dP[itnx+] [pattern] Partitioned relations (t=tables, i=indexes, n=nested shows parent)
\dRp[x+] [pattern] Replication publications (\dRp+ shows associated tables/schemas)
\dRs[x+] [pattern] Replication subscriptions (\dRs+ shows additional properties)

Extended statistics, extensions, and more

Command Shows
\dX[x] [pattern] Extended statistics. Status column shows defined (requested) or NULL (not requested) per statistic kind. Use pg_stats_ext to check if ANALYZE has been run.
\dx[x+] [pattern] Installed extensions (\dx+ lists all objects in each extension)
\dy[x+] [pattern] Event triggers
\dd[Sx] [pattern] Object descriptions (comments on constraints, operator classes, operator families, rules, triggers). Other object comments are shown by their respective \d commands.

Foreign data wrapper listings

Command Shows
\des[x+] [pattern] Foreign servers
\det[x+] [pattern] Foreign tables (\det+ shows options and description)
\deu[x+] [pattern] User mappings (CAUTION: \deu+ may show passwords)
\dew[x+] [pattern] Foreign-data wrappers

Text search listings

Command Shows
\dF[x+] [pattern] Text search configurations (\dF+ shows parser and dictionary list per token type)
\dFd[x+] [pattern] Text search dictionaries
\dFp[x+] [pattern] Text search parsers (\dFp+ shows functions and recognized token types)
\dFt[x+] [pattern] Text search templates

Other object listings

Command Shows
\db[x+] [pattern] Tablespaces (\db+ shows options, size, permissions, description)
\dc[Sx+] [pattern] Character-set encoding conversions
\dl[x+] Large objects (alias for \lo_list)
\dL[Sx+] [pattern] Procedural languages
\du[Sx+] [pattern] / \dg[Sx+] [pattern] Database roles (\du = \dg, since users and groups were unified into roles)
\l[x+] [pattern] Databases (\l+ shows size, default tablespace, description. Size only available for databases you can connect to.)
\sf[+] func_desc Function definition (read-only, + numbers lines from body start)
\sv[+] view_name View definition (read-only, + numbers lines)

Pattern matching rules

All \d commands that accept a pattern use the same matching system:

  1. Case folding: Unquoted letters are folded to lowercase (like SQL identifiers). Double quotes prevent folding.
  2. Wildcards: * matches any character sequence, ? matches any single character. Within double quotes, these are literal.
  3. Dot separator: A dot (.) separates schema from object name. Two dots separate database.schema.object (database must match current connection).
  4. Regex: Advanced patterns like [0-9] work. . is a separator (not regex any-char), *.*, ?., $ is literal. Within double quotes, all regex specials are literal.
  5. No pattern: Shows all objects visible in the current schema search path (equivalent to *). Use *.* to see all objects regardless of visibility.