CEVIU Logo
Voltar

Um Novo Formatador SQL no Estilo do gofmt Otimiza Padrões de Código

Aprofundamento CEVIU

Aprofundamento

O sqlfmt entra no cenário de ferramentas de dados com uma proposta direta: padronizar o código SQL sem exigir configuração. Inspirado no gofmt, ele segue a filosofia de um estilo de formatação único, conhecido como "river alignment", popularizado por Dimitri Fontaine em "The Art of PostgreSQL". Essa abordagem visa alinhar cláusulas como SELECT, FROM e WHERE em uma coluna vertical, facilitando a leitura e a manutenção de consultas complexas.

Tecnicamente, o sqlfmt se destaca por usar tokenização, não uma Árvore de Sintaxe Abstrata (AST), para processar o SQL. Essa escolha oferece mais robustez, pois o formatador consegue lidar com trechos incompletos ou sintaticamente imperfeitos sem falhar, além de preservar comentários, que muitas vezes são descartados por parsers baseados em AST. A ferramenta também garante que a formatação visual não altere a semântica da query, uma preocupação vital em engenharia de dados. Ele pode ser executado via linha de comando (CLI) ou diretamente no navegador, graças à compilação para WebAssembly (WASM), uma solução similar à usada por outras ferramentas de performance que já cobrimos, como o Polyglot, um transpilador de SQL baseado em Rust e WASM de fevereiro de 2026.

Por que isso importa

A chegada do sqlfmt é relevante para o ecossistema de dados porque aborda um problema antigo: a inconsistência na formatação de SQL. Projetos que mantêm consultas SQL em arquivos dedicados ou strings em código-fonte, especialmente aqueles que não usam ORMs, ganham uma ferramenta para impor um padrão. Isso reduz o "bike-shedding" sobre estilo e permite que engenheiros de dados foquem na lógica de negócio.

A adoção de formatadores como o sqlfmt espelha um movimento visto em outras linguagens, como o rubyfmt da Stripe, que em maio de 2026 mostrou ganhos massivos de produtividade. Ele facilita a colaboração, melhora a legibilidade do código e integra-se bem em fluxos de trabalho de CI/CD, garantindo que todo o código SQL passe por um crivo de qualidade antes mesmo de ser mesclado. A validação de dados também é um tema quente, como vimos com a biblioteca Pointblank em agosto de 2026, mas a formatação é um passo anterior e igualmente crítico na higiene de dados.

Linha do tempo

  1. Polyglot: Biblioteca Rust/Wasm para Transpilação de SQL é apresentada.

  2. Oxfmt Beta: Novo padrão de performance em formatação de JavaScript e TypeScript é lançado.

  3. QL, TypeScript e Agentes: Inovação no desenvolvimento SQL via engine Fusion do dbt é divulgada.

  4. Stripe otimiza base de código Ruby com rubyfmt, um autoformatter reescrito em Rust.

  5. Coco Alemana lança transpilador de SQL para DuckDB, promovendo compatibilidade multi-dialeto.

  6. Biblioteca Pointblank surge como nova ferramenta para validação de dados sólida em Python.

  7. Um Novo Formatador SQL no Estilo do gofmt Otimiza Padrões de Código.

Perguntas frequentes

O que é "river alignment" e como ele funciona no sqlfmt?

River alignment é um estilo de formatação onde palavras-chave como SELECT, FROM, WHERE são alinhadas verticalmente em uma mesma coluna. O sqlfmt aplica essa regra, garantindo que cada cláusula em um nível de aninhamento termine na mesma coluna, criando um "rio" visual que facilita a leitura e compreensão da estrutura da query.

Por que o sqlfmt usa tokenização em vez de uma Árvore de Sintaxe Abstrata (AST)?

A tokenização confere ao sqlfmt maior robustez e flexibilidade. Diferente dos parsers baseados em AST que podem falhar com código incompleto ou inválido e descartam comentários, a abordagem via token permite que a ferramenta lide melhor com trechos de código e preserve comentários, que são essenciais para documentação e compreensão.

Qual a principal inspiração do sqlfmt e o que isso significa para os usuários?

O sqlfmt é diretamente inspirado no gofmt, um formatador para a linguagem Go. Isso significa que ele adota uma filosofia de "formatação sem configuração", impondo um estilo opinativo único. O objetivo é eliminar discussões sobre estilo de código, permitindo que os desenvolvedores apenas executem a ferramenta, apliquem a formatação e sigam em frente.

Como o sqlfmt garante que a formatação não altera o comportamento da query SQL?

O sqlfmt foi desenvolvido para preservar a semântica da query. Ele verifica, usando o parser oficial do PostgreSQL como um "oráculo de correção", se o "fingerprint" (uma representação única) da query original é o mesmo após a formatação. Isso assegura que nenhuma operação ou lógica no banco de dados seja alterada inadvertidamente.

Fontes

Avalie este artigo:
Compartilhar:
Categoria
CEVIU Dados
Publicado
13 de agosto de 2026
Editoria
CEVIU Dados

Quer receber mais sobre CEVIU Dados?

Conteúdo curado diariamente, direto no seu e-mail.

Conteúdo curado diariamenteDiversas categoriasCancele quando quiser
Um Novo Formatador SQL no Estilo do gofmt Otimiza Padrões