Formatador de PostgreSQL
Formate consultas e scripts PostgreSQL com regras do Postgres para corpos de função entre cifrões, strings de escape E'', identificadores entre aspas duplas, conversões :: e operadores JSON como ->> e @>. Cláusulas como RETURNING, ON CONFLICT e DO UPDATE SET ficam em linhas próprias; strings, comentários ou parênteses não fechados são informados com linha e coluna. Feito para desenvolvedores que leem migrações e consultas.
Perguntas frequentes
Que sintaxe de PostgreSQL é reconhecida?
São reconhecidas strings padrão com aspas duplicadas, strings E'' com escapes de barra invertida, strings Unicode U&'', strings de bits B'' e X'', identificadores entre aspas duplas e parâmetros $1. Strings entre cifrões, como $$...$$ ou $body$...$body$, também são reconhecidas.
O que acontece com os corpos de função entre cifrões?
Um corpo entre cifrões é mantido exatamente como foi escrito, porque é uma string para PostgreSQL. A instrução CREATE FUNCTION ao redor é formatada, mas o corpo em si não é alterado.
Conversões e operadores são mantidos intactos?
Sim. Conversões como value::integer permanecem unidas, e operadores como ->, ->>, #>, #>>, @>, <@, ?|, ?&, @@ e os operadores de expressão regular ~ e ~* com suas formas negadas nunca são separados. Em PostgreSQL, # é um operador, não um comentário.
Quais cláusulas PostgreSQL ficam em uma linha própria?
RETURNING, ON CONFLICT, DO UPDATE SET, FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE e FOR KEY SHARE permanecem juntas como cláusulas. As cláusulas SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT e OFFSET também começam em linhas próprias.
Os comentários são preservados?
Sim. Comentários de linha e comentários de bloco permanecem no lugar, e comentários de bloco aninhados, que PostgreSQL permite, são interpretados corretamente. Comentários de bloco com várias linhas são reindentados na nova posição.
Há suporte a MERGE?
Sim. As ramificações WHEN MATCHED e WHEN NOT MATCHED começam em linhas novas, mantendo legíveis as instruções MERGE do PostgreSQL 15 em diante.
A ferramenta altera maiúsculas e minúsculas das palavras-chave?
Não. Palavras-chave e identificadores mantêm a capitalização usada. Identificadores entre aspas diferenciam maiúsculas de minúsculas em PostgreSQL e nunca são alterados.
Quais erros são detectados?
Strings sem fechamento, identificadores entre aspas, strings entre cifrões e comentários de bloco, além de parênteses sem correspondência, são informados com linha e coluna. A ferramenta não verifica a gramática completa de PostgreSQL nem o seu esquema.
Qual pode ser o tamanho da entrada?
Até 1 MB por solicitação e 128 KB por instrução. Arquivos de migração com muitas instruções são formatados uma instrução por vez e separados por linhas em branco.
Posso escolher a indentação?
Sim. Use 2 ou 4 espaços ou tabulações. Seu SQL é processado apenas na memória e nunca é armazenado.