11 puntos por GN⁺ 2025-03-30 | 1 comentarios | Compartir por WhatsApp
  • Implementación de Language Server Protocol (LSP) dedicada a Postgres y provisión de diversas herramientas de desarrollo
  • Basado en libpg_query, el parser predeterminado de Postgres, ofrece funciones SQL estables con compatibilidad del 100% con la sintaxis de Postgres
  • Está diseñado con una arquitectura cliente-servidor y adopta un diseño flexible independiente del método de transporte
  • Gracias a esto, las funciones pueden usarse no solo mediante Language Server Protocol, sino también a través de diversas interfaces como CLI, HTTP API y módulos de WebAssembly
  • El objetivo es hacer que las excelentes herramientas existentes de Postgres sean lo más accesibles posible y desarrollar directamente lo que haga falta
  • Funciones implementadas actualmente:
    • Autocompletado
    • Soporte para resaltar errores de sintaxis
    • Verificación de tipos usando el comando EXPLAIN
    • Incluye una función de SQL linter inspirada en Squawk

1 comentarios

 
GN⁺ 2025-03-30

Opiniones de Hacker News

  • Se publicó una versión inicial de Postgres Language Server
    • Se puede instalar desde la extensión de VSCode, nvim-lspconfig, mason y npm
    • Es un proyecto construido tras pasar por muchas pruebas y errores durante 2 años
    • Por ahora está diseñado para funcionar de una forma práctica y simple
    • Recibió mucha inspiración y gran ayuda del codebase de Biome
    • Está implementado en Rust y dan la bienvenida a quienes quieran contribuir en Rust
  • Actualmente solo soporta sentencias SQL, pero más adelante planean dar soporte también a PL/pgSQL
    • Sigue el dialecto SQL de PostgreSQL y usa el parser de Postgres
    • Si se proporciona una conexión a la base de datos, lee metadatos a través de las tablas pg_catalog
    • Si no hay información de conexión, esa función se desactiva
  • Los IDE de JetBrains han ofrecido desde hace mucho un excelente soporte para SQL. Es positivo que por fin haya aparecido una alternativa FOSS
  • La herramienta de base de datos de IntelliJ no es algo tan especial, y herramientas antiguas como SQL Squirrel también son bastante buenas
  • Si no cambias la base de datos con frecuencia, quizá no sea tan útil
    • En plataformas como Supabase, donde se escribe mucha lógica en SQL, resulta muy útil
    • Si trabajas seguido con funciones SQL, RLS, archivos de migración y similares, puede ayudar bastante
  • La sintaxis de Postgres es muy compleja y cambia con frecuencia, por lo que a las herramientas existentes les cuesta mantener soporte continuo
    • Resolvieron este problema usando libpg_query, que extrae el parser real del servidor Postgres
  • Las herramientas de JetBrains no solo analizan consultas, también ofrecen funciones para emparejarlas con tablas reales
    • Impresiona que también puedan analizar cadenas SQL dentro del código
  • Se considera un cambio de juego para quienes gestionan codebases de PL/pgSQL con archivos de migración