Skip to content

pgfmt

A PostgreSQL SQL formatter with multiple style options.

pgfmt parses SQL using pgparse (PostgreSQL's own parser via libpg_query) and reformats it according to one of several well-known style guides.

Installation

pip install pgfmt

Quick Start

# Format a file
pgfmt query.sql

# Format from stdin
echo "SELECT a,b FROM t WHERE x=1" | pgfmt

# Choose a style
pgfmt --style dbt query.sql
import pgfmt

formatted = pgfmt.format("SELECT a, b FROM t WHERE x = 1")

Available Styles

Style Keywords Layout Commas Indent
river (default) UPPERCASE Right-aligned river trailing river
aweber UPPERCASE River, JOINs in river trailing river
mattmc3 lowercase River, leading commas leading river
mozilla UPPERCASE Left-aligned trailing 4-space
dbt lowercase Left-aligned, blank lines trailing 4-space
gitlab UPPERCASE Left-aligned trailing 2-space
kickstarter UPPERCASE Left-aligned, ON same line trailing 2-space