11 ポイント 投稿者 GN⁺ 2025-03-30 | 1件のコメント | WhatsAppで共有
  • Postgres 専用の Language Server Protocol(LSP)実装と、さまざまな開発ツールを提供
  • Postgres の標準パーサーである libpg_query をベースに、Postgres 構文と 100% 互換の安定した SQL 機能を提供
  • サーバー・クライアント構成で設計され、転送方式に依存しない柔軟なデザインを採用
  • これにより、Language Server Protocol だけでなく、CLI、HTTP API、WebAssembly モジュールのような多様なインターフェースで機能を利用できる
  • 目標は、既存の優れた Postgres ツールをできる限り利用しやすくし、不足している部分は自ら開発すること
  • 現在実装されている機能:
    • 自動補完機能
    • 構文エラーのハイライト対応
    • EXPLAIN コマンドを利用した型チェック機能
    • Squawk に着想を得た SQL Linter 機能を含む

1件のコメント

 
GN⁺ 2025-03-30

Hacker Newsの意見

  • Postgres Language Server の初期バージョンが公開された
    • VSCode 拡張、nvim-lspconfigmason、npm からインストール可能
    • 2年間にわたるさまざまな試行錯誤を経て作られたプロジェクト
    • 現時点では実用的でシンプルな方法で動作するよう構成されている
    • Biome のコードベースから多くの着想を得て、大きな助けを受けた
    • Rust で実装されており、Rust へのコントリビュートをしたい人を歓迎している
  • 現在は SQL 文のみをサポートしており、今後は PL/pgSQL もサポート予定
    • PostgreSQL の SQL 方言に従い、Postgres のパーサーを使用する
    • DB 接続を提供すると、pg_catalog テーブルを通じてメタデータを読み込む
    • 接続情報がない場合、その機能は無効化される
  • JetBrains IDE はかなり前から優れた SQL サポートを提供してきた。FOSS の代替がようやく登場したのは好意的に受け止められる
  • IntelliJ の DB ツールは特別というわけではなく、SQL Squirrel のような古いツールもかなり良い
  • DB を頻繁に変更しないなら、それほど有用ではないかもしれない
    • Supabase のように SQL で多くのロジックを書くプラットフォームでは非常に有用
    • SQL 関数、RLS、マイグレーションファイルなどを頻繁に扱うなら大いに役立つ
  • Postgres の文法は非常に複雑で頻繁に変更されるため、既存ツールが継続的にサポートするのは難しい
    • Postgres サーバーの実際のパーサーを抽出した libpg_query を使ってこの問題を解決した
  • JetBrains ツールはクエリを解析するだけでなく、実際のテーブルとマッチさせる機能も提供する
    • コード内の SQL 文字列も解析できる点が印象的
  • PL/pgSQL のコードベースをマイグレーションファイルで管理している人にとってはゲームチェンジャーだと評価されている