VillageSQL には、組み込みの拡張機能が付属しており、VillageSQL チームによって構築および保守される公式拡張機能もサポートされています。INSTALL EXTENSION を使用して、これらの拡張機能のいずれかをインストールできます。
組み込み拡張機能
ソースコードからビルドする場合、vsql_complex と vsql_simple のみが含まれます。以下の公式拡張機能は、個別のリポジトリで保守されています。
vsql_complex
ステータス: VillageSQL に組み込み
リポジトリ: villagesql-server/villagesql/examples/vsql-complex
電気工学、信号処理、および科学計算のための完全な算術演算をサポートする複素数データ型。
機能:
- 複素数 (a + bi) を格納するための
COMPLEX 列型
- 文字列リテラル形式:
'(real,imaginary)' (例: '(3.0,4.0)')
- 算術演算: 加算、減算、乗算、除算
- ユーティリティ:
complex_real()、complex_imag()、complex_abs()、complex_conjugate()
- バイナリストレージ: 16 バイト (2 つの double 型)
インストール:
例:
コア拡張機能
以下の拡張機能は、個別のリポジトリで保守されており、個別にビルドおよびインストールする必要があります。それぞれに独自のインストール手順とドキュメントが用意されています。
vsql_ai
リポジトリ: villagesql/vsql-ai
AI を活用した SQL 関数。SQL クエリのための AI プロンプトおよび埋め込み関数。Anthropic Claude、Google Gemini、OpenAI、およびローカルの Ollama をサポートします。
vsql_crypto
リポジトリ: villagesql/vsql-crypto
暗号化関数。ハッシュ (MD5、SHA-1、SHA-256、SHA-512 など)、HMAC、AES 暗号化、パスワードハッシュ、および OpenSSL を使用したセキュアなランダムデータの生成。
vsql_cube
リポジトリ: villagesql/vsql-cube
N 次元ボックスおよびポイント型。最大 100 次元にわたって、幾何学的ボックスとポイントを格納およびクエリします。コンストラクタ、アクセサ、述語、距離、および幾何関数が利用可能です。VillageSQL 0.0.4 が必要です。
vsql_http
リポジトリ: villagesql/vsql-http
HTTP クライアント関数。SQL クエリから HTTP リクエスト (GET、POST、PUT、DELETE、PATCH) を送信し、JSON 形式のレスポンスを受け取ります。また、URL のエンコードとデコードもサポートします。
vsql_network_address
リポジトリ: villagesql/vsql-network-address
ネットワークアドレス型。IPv4、IPv6、および MAC アドレスデータ型。検証、比較、およびネットワーク操作をサポートします。
vsql_uuid
リポジトリ: villagesql/vsql-uuid
UUID データ型および関数。SQL でネイティブに UUID を生成および操作します。v1、v3、v4、v5、v6、および v7 をサポートします。ネイティブの 16 バイト UUID 型、タイムスタンプ抽出、および比較が可能です。
vsql_boolean
リポジトリ: villagesql/vsql-boolean
本物のブール型。標準的な真偽値 (true/false、yes/no、on/off、1/0)、1 バイトのストレージ、および正しいダンプ・リストアのセマンティクスを備えた本格的な STRICTBOOL 列型。集約関数 boolean_sum() は、グループ内の TRUE の個数を INT として返します。boolean_avg() は TRUE の割合 (TRUE の個数 ÷ NULL でない個数) を REAL として返します。どちらも NULL を無視し、boolean_avg() は空のグループに対して NULL を返します。
vsql_rest
リポジトリ: villagesql/vsql-rest
REST API サーバー。コードを書くことなく、データベーステーブルをライブの HTTP/HTTPS エンドポイントとして公開します。SET GLOBAL で設定し、URL フィルタでテーブルをクエリし、/rpc/ からストアドファンクションを呼び出せます。 プレビュー機能であり、--vsql_allow_preview_extensions=ON で起動したサーバーが必要です。
vsql_trgm
リポジトリ: villagesql/vsql-trgm
トライグラムによるテキスト類似度検索。PostgreSQL の pg_trgm の移植版。文字列間の類似度スコアの算出、列内の近似一致の検索、および単語単位の類似度の測定を、すべて SQL から実行できます。VillageSQL 0.0.4 が必要です。
vsql_fuzzystrmatch
リポジトリ: villagesql/vsql-fuzzystrmatch
あいまい文字列照合関数。PostgreSQL の fuzzystrmatch の移植版。Soundex 音声コード、レーベンシュタイン編集距離 (コストの設定と早期終了のしきい値に対応)、Metaphone、および Double Metaphone を提供し、氏名の照合、スペル訂正、音声による重複排除に利用できます。VillageSQL 0.0.4 が必要です。
vsql_currency
リポジトリ: villagesql/vsql-currency
ISO 4217 通貨コード型。164 種類の通貨コードのいずれかを 1 バイトで格納する currency 列型。入力は大文字・小文字を区別せず、出力は正規化された大文字で、アルファベット順の並べ替えとインデックスに対応します。adjust/pg-currency の Rust 移植版。
vsql_oauth2
リポジトリ: villagesql/vsql-oauth2
OAuth2/OIDC JWT 認証。IDENTIFIED WITH vsql_oauth2 で作成されたアカウントは、パスワードの代わりに JWT を提示して認証します。拡張機能は、設定された RS256/ES256 の公開鍵で署名を検証し、exp (設定されている場合は iss/aud も) を確認したうえで、クレームを VillageSQL のアカウントにマッピングします。プレビュー機能であり、--vsql_allow_preview_extensions=ON で起動したサーバーが必要です。
vsql_stat_ch
リポジトリ: villagesql/vsql-stat-ch
ClickHouse へのステートメント単位のテレメトリ。完了したステートメントごとに 1 件のイベントを収集し、ClickHouse のネイティブプロトコル (ポート 9000) または HTTP (ポート 8123) でバッチ送信します。トランスポートはサーバーの稼働中に切り替え可能です。プレビュー機能であり、--vsql_allow_preview_extensions=ON で起動したサーバーが必要です。
vsql_mcp
リポジトリ: villagesql/vsql-mcp
Model Context Protocol サーバー。MCP Streamable HTTP 経由で、データベースを AI エージェント向けのツール面として公開します。リスナーはサーバープロセス内で動作します。エージェントはスキーマの一覧表示、テーブルの説明、読み取り専用クエリの実行ができます。書き込みは有効にするまでオフのままです。ツールのクエリは専用のデータベースアカウント経由で実行され、任意のテーブル許可リスト、行数上限、呼び出しごとのタイムアウトが適用されます。プレビュー機能であり、--vsql_allow_preview_extensions=ON で起動したサーバーが必要です。
コミュニティ拡張機能
コミュニティ拡張機能は、VillageSQL 拡張フレームワーク (VEF) を使用して、サードパーティによって構築されています。VillageSQL チームによって保守されるものではありません。
vsql_statistics
リポジトリ: ronaldbradford/vsql-statistics
メンテナー: Ronald Bradford
データ分析のための統計集計関数。IQR、四分位数、中央値、および Tukey のフェンスを使用した外れ値検出 — STATS_IQR。VillageSQL 0.0.4 が必要です。
prometheus_exporter
リポジトリ: ProxySQL/vsql-prometheus-exporter
メンテナー: ProxySQL
組み込みの Prometheus メトリクスエクスポートツール。MySQL サーバーのメトリクスを、Prometheus 形式の HTTP /metrics エンドポイントで公開します。グローバルステータス、グローバル変数、InnoDB メトリクス、およびレプリケーションステータスが含まれます。
vsql_luhn
リポジトリ: intojhanurag/vsql-luhn
メンテナー: intojhanurag
Luhn アルゴリズムのバリデーターおよびチェックディジット生成ツール。luhn_valid() でクレジットカード番号、IMEI コード、カナダの SIN、その他の業界識別子を検証し、luhn_checkdigit() で正しいチェックディジットを生成します。
vsql_nanoid
リポジトリ: intojhanurag/vsql-nanoid
メンテナー: intojhanurag
短くて URL セーフな一意識別子のための NanoID ジェネレーター。nanoid() は 21 文字の ID を返します。nanoid_with(size[, alphabet]) で長さと文字セットをカスタマイズできます。暗号論的に安全な乱数ソースを使用します。
vsql_slugify
リポジトリ: intojhanurag/vsql-slugify
メンテナー: intojhanurag
任意のテキストから URL セーフなスラグを生成します — アクセント付き文字を ASCII に変換し、小文字化し、英数字以外の文字を単一の区切り文字にまとめ、先頭と末尾の区切り文字を削除します。
vsql_pgjwt
リポジトリ: intojhanurag/vsql-pgjwt
メンテナー: intojhanurag
JSON Web Token の署名、検証、デコードを SQL 内で直接実行します。HMAC (HS256、HS384、HS512) と RSA (RS256) のアルゴリズムに対応します。
vsql_address_standardizer
リポジトリ: jobala/vsql-address-standardizer
メンテナー: Japheth Obala
米国の自由形式の郵便住所を、番地、通り名、接尾辞、市、州、郵便番号の各要素に解析します。この拡張機能は PostgreSQL の contrib address_standardizer にインスパイアされています。