11 Punkte von GN⁺ 2025-03-30 | 1 Kommentare | Auf WhatsApp teilen
  • Bietet eine Implementierung des speziell für Postgres entwickelten Language Server Protocol (LSP) sowie verschiedene Entwickler-Tools
  • Basierend auf libpg_query, dem Standard-Parser von Postgres, und bietet dadurch stabile SQL-Funktionen mit 100%iger Kompatibilität zur Postgres-Syntax
  • Ist als Server-Client-Architektur konzipiert und verwendet ein flexibles Design, das vom Übertragungsweg unabhängig ist
  • Dadurch können die Funktionen nicht nur über das Language Server Protocol, sondern auch über verschiedene Schnittstellen wie CLI, HTTP API und WebAssembly-Module genutzt werden
  • Das Ziel ist, bestehende großartige Postgres-Tools so zugänglich wie möglich zu machen und fehlende Teile direkt selbst zu entwickeln
  • Derzeit implementierte Funktionen:
    • Autovervollständigung
    • Unterstützung für Syntaxfehler-Hervorhebung
    • Type-Checking mit dem Befehl EXPLAIN
    • Inklusive einer SQL-Linter-Funktion, inspiriert von Squawk

1 Kommentare

 
GN⁺ 2025-03-30

Hacker-News-Kommentare

  • Die erste Version des Postgres Language Server wurde veröffentlicht
    • Installierbar als VSCode-Erweiterung, über nvim-lspconfig, mason und npm
    • Das Projekt entstand über zwei Jahre hinweg mit vielen Versuchen und Irrwegen
    • Derzeit ist es so aufgebaut, dass es auf praktische und einfache Weise funktioniert
    • Die Biome-Codebasis war eine große Inspirationsquelle und Hilfe
    • Es ist in Rust implementiert, und Beiträge von Menschen, die zu Rust beitragen möchten, sind willkommen
  • Aktuell werden nur SQL-Anweisungen unterstützt; künftig soll auch PL/pgSQL unterstützt werden
    • Es folgt dem SQL-Dialekt von PostgreSQL und verwendet den Parser von Postgres
    • Wenn eine DB-Verbindung bereitgestellt wird, werden Metadaten über die Tabellen in pg_catalog eingelesen
    • Ohne Verbindungsinformationen ist diese Funktion deaktiviert
  • JetBrains-IDEs bieten schon seit Langem hervorragende SQL-Unterstützung. Positiv ist, dass es nun endlich eine FOSS-Alternative gibt
  • Das IntelliJ-DB-Tool ist nichts Besonderes; auch ältere Tools wie SQL Squirrel sind ziemlich ordentlich
  • Wenn man die DB nicht häufig verändert, ist es möglicherweise nicht so nützlich
    • Auf Plattformen wie Supabase, auf denen viel Logik in SQL geschrieben wird, ist es sehr nützlich
    • Wer häufig mit SQL-Funktionen, RLS und Migrationsdateien arbeitet, kann stark davon profitieren
  • Die Postgres-Syntax ist sehr komplex und ändert sich häufig, weshalb bestehende Tools sie nur schwer dauerhaft unterstützen können
    • Das Problem wird durch die Verwendung von libpg_query gelöst, das den echten Parser des Postgres-Servers extrahiert
  • JetBrains-Tools analysieren nicht nur Queries, sondern bieten auch eine Funktion zum Abgleich mit echten Tabellen
    • Beeindruckend ist, dass sogar SQL-Strings im Code analysiert werden können
  • Für Menschen, die ihre PL/pgSQL-Codebasis über Migrationsdateien verwalten, wird es als echter Gamechanger bewertet