11 points par GN⁺ 2025-03-30 | 1 commentaires | Partager sur WhatsApp
  • Implémentation du Language Server Protocol (LSP) dédiée à Postgres, avec divers outils de développement
  • Basé sur libpg_query, le parseur natif de Postgres, afin d’offrir des fonctionnalités SQL stables 100 % compatibles avec la syntaxe Postgres
  • Conçu selon une architecture serveur-client, avec un design flexible indépendant du mode de transport
  • Cela permet d’utiliser les fonctionnalités non seulement via le Language Server Protocol, mais aussi via diverses interfaces comme un CLI, une API HTTP ou un module WebAssembly
  • L’objectif est de rendre les excellents outils existants autour de Postgres aussi accessibles que possible, et de développer directement ce qui manque
  • Fonctionnalités actuellement implémentées :
    • autocomplétion
    • prise en charge du surlignage des erreurs de syntaxe
    • vérification de type à l’aide de la commande EXPLAIN
    • fonctionnalité de linter SQL inspirée de Squawk

1 commentaires

 
GN⁺ 2025-03-30

Avis Hacker News

  • Publication d’une première version de Postgres Language Server
    • Installation possible via l’extension VSCode, nvim-lspconfig, mason et npm
    • Le projet a été construit au fil de deux ans d’essais et d’erreurs
    • Pour l’instant, il est conçu pour fonctionner de manière pratique et simple
    • Le codebase de Biome a été une grande source d’inspiration et d’aide
    • L’implémentation est en Rust, et les personnes souhaitant contribuer en Rust sont les bienvenues
  • Pour le moment, seuls les fichiers SQL sont pris en charge, avec un support futur prévu pour PL/pgSQL
    • Il suit le dialecte SQL de PostgreSQL et utilise le parseur de Postgres
    • Si une connexion DB est fournie, il lit les métadonnées via les tables pg_catalog
    • Sans informations de connexion, cette fonctionnalité est désactivée
  • Les IDE JetBrains proposent depuis longtemps un excellent support SQL. L’arrivée d’une alternative FOSS est enfin une bonne nouvelle
  • Les outils DB d’IntelliJ n’ont rien d’exceptionnel, et d’anciens outils comme SQL Squirrel restent tout à fait corrects
  • Cela peut ne pas être très utile si l’on ne modifie pas souvent la DB
    • C’est très utile sur des plateformes comme Supabase, où beaucoup de logique est écrite en SQL
    • Si l’on travaille souvent avec des fonctions SQL, des politiques RLS, des fichiers de migration, etc., cela peut être d’une grande aide
  • La syntaxe Postgres est très complexe et change souvent, ce qui rend difficile un support durable pour les outils existants
    • Le problème est résolu grâce à libpg_query, qui extrait le vrai parseur du serveur Postgres
  • Les outils JetBrains ne se contentent pas d’analyser les requêtes, ils permettent aussi de les faire correspondre aux tables réelles
    • Leur capacité à analyser aussi les chaînes SQL dans le code est impressionnante
  • C’est considéré comme un game changer pour les personnes qui gèrent une base de code PL/pgSQL via des fichiers de migration