Skip to main content
以下の標準SQLインターフェースを使用して、拡張メタデータとサーバーの状態を照会します。

システムビュー

INFORMATION_SCHEMA.EXTENSIONS

現在インストールされているVillageSQL拡張の一覧を表示します。
INSTALL EXTENSIONUNINSTALL EXTENSION はVillageSQLのSQL拡張機能です。 これらは標準的なMySQL 9.7の構文には含まれていません。
既知の列: 例:
出力例(実際のバージョン文字列はインストールされた拡張機能に依存します):
EXTENSION_NAME の値は小文字で、make_extension() に渡された名前と一致します。 このビューは現在のインストール状態を反映します。 4つの PENDING_* 列は、スケジュールされた ALTER EXTENSION ... AT RESTART のバージョン変更を追跡します。ワークフローについては 拡張機能の管理 を参照してください。

INFORMATION_SCHEMA.COLUMNS (カスタム型)

カスタム拡張型を使用する列は、標準的な INFORMATION_SCHEMA.COLUMNS ビューで確認できます。カスタム型は DATA_TYPE および COLUMN_TYPE 列に extension_name.type_name 形式で表示されます (例:vsql_complex.COMPLEX)。 例:
出力例:

INFORMATION_SCHEMA.EXTENSION_REGISTRATION

読み込まれた各拡張機能のメモリ内VEF登録構造体をJSONドキュメントとして公開します。INSTALL EXTENSION 実行後に、サーバーが拡張機能の関数、型、システム変数を正しくパースしたことを確認するために使用します。

一般的なクエリ

拡張機能の依存関係の検索

アンインストールする前に、特定の拡張機能の型を使用している列を特定します:

すべての拡張機能とそのカスタム型列の一覧表示

拡張機能の型を使用しているテーブルの検索


システム変数

veb_dir

実行時に読み取り専用です。サーバーが .veb 拡張バンドルファイルを検索するディレクトリのパスを示します。[mysqld] セクションの my.cnf で設定します。サーバーの再起動なしでは変更できません。
スコープ: グローバル、実行時に読み取り専用。my.cnf で設定:
サポートされるのは単一のディレクトリのみです。配置とトラブルシューティングについては、拡張機能の管理 を参照してください。

villagesql_server_version

読み取り専用のグローバル変数です。サーバーバイナリにコンパイルされたVillageSQLバージョン文字列を返します。フォーマットは {codebase}_{major}.{minor}.{patch}[-prerelease] であり、codebase はこのビルドの派生元となる上流フォークを指します(ここでは mysql-9.7)。これは内部メタデータカタログにスタンプされたバージョンを同じ {codebase}_{version} 形式で報告する villagesql_schema_version とは別物です。
スコープ: グローバル、読み取り専用。実行時に設定できません。

villagesql_schema_version

読み取り専用のグローバル変数です。内部メタデータカタログにスタンプされたバージョンを、villagesql_server_version と同じ {codebase}_{version} 形式で返します。空文字列は、このデータディレクトリで VillageSQL スキーマが初期化されていないことを意味します。
スコープ: グローバル、読み取り専用。実行時に設定できません。

villagesql_vef_server_protocol

読み取り専用のグローバル変数です。このサーバービルドでサポートされている最高のVEFプロトコルバージョンを返します。拡張機能のインストール時には、サーバーと拡張機能の双方がサポートする最高のプロトコルバージョンが使用されます。廃止された不安定プロトコルバージョンでビルドされた拡張機能はインストールできず、INSTALL EXTENSIONFailed to load VEF extension エラーで失敗します。
プロトコル V4 は、可変長カスタム型のサポートを追加し、関数が文字列結果の最大長を 宣言できるようにします。V4 はオプトインの開発版 ABI の下で活発に開発が進められており、 安定化する前に変更される可能性があります。拡張機能を開発する場合は、各プロトコル バージョンで利用可能になる機能について タイプ操作C++での拡張機能の作成 を参照してください。 この値はコンパイル時の定数 vef_server_protocol_version を反映しており、実行時に変更することはできません。

villagesql_build_info

読み取り専用のグローバル変数です。このサーバーバイナリがどのようにビルドされたかに関するメタデータ(ソースコミット、ワークツリーの状態、およびビルド環境)を含む JSON オブジェクトを返します。
スコープ: グローバル、読み取り専用。実行時に設定できません。 変更されたワークツリーからのビルドでは、files_addedfiles_deleted、または files_modified にゼロ以外の数が表示され、その場合 is_dirtytrue になります。 リリースビルド(バージョンにプレリリースのサフィックスが付いていないビルド)では、 同一のソースから同一のバイナリが生成されるように、この3つのカウントが強制的にゼロになり、 build_timestampbuild_host が空になります。これが、リリースビルドでは常に is_dirtyfalse になる理由です。

vsql_allow_preview_extensions

プレビュー機能を必要とする拡張機能をサーバーが受け入れるかどうかを制御します。OFF の間は、そのような拡張機能のインストールが失敗します:
SET PERSIST で有効にします:
SET GLOBAL ではなく SET PERSIST を使用してください。プレビュー拡張機能はサーバー起動時にロードされるため、この値は再起動後も保持される必要があり、mysqld-auto.cnf に書き込むのは SET PERSIST だけです。そのため SET GLOBAL は拒否されます。mysqld-auto.cnf がまだ存在しない場合(サーバーを初めて起動する場合など)は、代わりに mysqld のコマンドラインで --vsql_allow_preview_extensions=ON を渡してください。 プレビュー機能を使用する拡張機能が1つでもインストールされている間は、この値をOFFに戻すことはできません。サーバー起動時にこの設定がONである必要があるためです。まず該当する拡張機能をアンインストールしてください。 利用可能なプレビュー機能の一覧と、拡張機能がそれらをどう使うかについては、プレビュー機能 を参照してください。

次のステップ

拡張機能の管理

拡張機能の監視とトラブルシューティング

拡張機能のインストール

新しい拡張機能の追加

拡張機能のアーキテクチャ

内部構造の理解

利用可能な拡張機能

拡張機能カタログの閲覧