DB Internals AtlasPostgreSQL 18.6 Home About

Parameter · Reporting and Logging / What to Log

debug_pretty_print

Indents parse and plan tree displays.

  • Default: on
  • Type: bool
  • Applies: Session (any user)

In plain words

The debug_print_* settings dump PostgreSQL's internal query trees into the log. With this on (the default) the dump is indented one field per line; off packs it into long wrapped lines.

For DBAs and operators

Affects only the output of debug_print_parse, debug_print_rewritten and debug_print_plan (and the same dumps sent to the client). Pretty output is much longer: a trivial SELECT 1 produces about 80 lines. Off is more compact and easier to grep, still readable for small trees.

LOG: parse tree: DETAIL: {QUERY :commandType 1 :querySource 0 :canSetTag true …

These are developer tools; the node format is internal and changes between major versions (PostgreSQL 18 added fields such as :hasGroupRTE and :returningOldAlias). For plan analysis, EXPLAIN (VERBOSE) is the user-facing equivalent.

How to change it

Any user can change it for their session with SET.

See it in context

Life of a query

Related parameters

debug_print_parse debug_print_rewritten debug_print_plan

All Reporting and Logging parameters