11 pontos por GN⁺ 2025-03-30 | 1 comentários | Compartilhar no WhatsApp
  • Implementação de um Language Server Protocol (LSP) dedicado ao Postgres e oferta de várias ferramentas de desenvolvimento
  • Baseado em libpg_query, o parser padrão do Postgres, oferecendo recursos SQL estáveis com 100% de compatibilidade com a sintaxe do Postgres
  • Projetado com uma arquitetura servidor-cliente e adotando um design flexível, independente do método de transporte
  • Com isso, é possível usar os recursos não só via Language Server Protocol, mas também por meio de diversas interfaces, como CLI, HTTP API e módulos WebAssembly
  • O objetivo é tornar as excelentes ferramentas já existentes para Postgres o mais acessíveis possível e desenvolver diretamente o que ainda estiver faltando
  • Funcionalidades atualmente implementadas:
    • Autocompletar
    • Suporte a destaque de erros de sintaxe
    • Verificação de tipos usando o comando EXPLAIN
    • Inclui funcionalidade de SQL Linter inspirada no Squawk

1 comentários

 
GN⁺ 2025-03-30

Opiniões do Hacker News

  • Foi lançada a versão inicial do Postgres Language Server
    • Pode ser instalado pela extensão do VSCode, nvim-lspconfig, mason e npm
    • É um projeto criado ao longo de 2 anos, passando por várias tentativas e erros
    • No momento, foi estruturado para funcionar de forma prática e simples
    • Recebeu muita inspiração da base de código do Biome e também muita ajuda
    • É implementado em Rust, e pessoas interessadas em contribuir com Rust são bem-vindas
  • Por enquanto, ele oferece suporte apenas a instruções SQL, com suporte a PL/pgSQL planejado para o futuro
    • Segue o dialeto SQL do PostgreSQL e usa o parser do Postgres
    • Se você fornecer uma conexão com o banco, ele lê os metadados por meio das tabelas pg_catalog
    • Sem informações de conexão, esse recurso fica desativado
  • As IDEs da JetBrains já oferecem um excelente suporte a SQL há muito tempo. É positivo ver que finalmente surgiu uma alternativa FOSS
  • A ferramenta de banco de dados do IntelliJ não é algo tão especial assim, e ferramentas antigas como SQL Squirrel também são bem decentes
  • Talvez não seja tão útil se você não altera o banco de dados com frequência
    • Em plataformas como o Supabase, onde muita lógica é escrita em SQL, isso é muito útil
    • Se você lida com frequência com funções SQL, RLS, arquivos de migração etc., pode receber bastante ajuda
  • A sintaxe do Postgres é muito complexa e muda com frequência, então é difícil para as ferramentas existentes manterem suporte contínuo
    • O problema foi resolvido usando o libpg_query, que extrai o parser real do servidor Postgres
  • As ferramentas da JetBrains não apenas analisam consultas, como também oferecem recursos para associá-las às tabelas reais
    • É impressionante que elas também consigam analisar strings SQL dentro do código
  • É avaliado como um divisor de águas para quem gerencia bases de código em PL/pgSQL com arquivos de migração