システムビュー
INFORMATION_SCHEMA.EXTENSIONS
現在インストールされているVillageSQL拡張の一覧を表示します。INSTALL EXTENSION と UNINSTALL EXTENSION はVillageSQLのSQL拡張機能です。
これらは標準的なMySQL 8.4の構文には含まれていません。
例:
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-8.4)。これは内部メタデータカタログにスタンプされたバージョンを同じ {codebase}_{version} 形式で報告する villagesql_schema_version とは別物です。
villagesql_vef_server_protocol
読み取り専用のグローバル変数です。このサーバービルドでサポートされている最高のVEFプロトコルバージョンを返します。拡張機能の作成者は、登録時に利用可能なABI機能を確認するために、この値をtypes.h のプロトコル定数と比較できます。
プロトコル V4 が追加する機能
VEF_PROTOCOL_4 以上をネゴシエートした拡張機能は、vef_type_desc_t の
variable_length フィールドにアクセスできるようになります。true に設定すると、
型の永続化サイズは単一の固定フットプリントではなく、値ごとに決定されます。可変長型は
上限として max_persisted_length も宣言する必要があります。このフラグを設定するには、
TypeBuilder の variable_length_type() ビルダーメソッドを使用してください。variable_length を
直接書き込まないでください。このフィールドは、ネゴシエートされたプロトコルが
VEF_PROTOCOL_4 以上の場合にのみサーバーによって読み取られます。
VEF_PROTOCOL_4 は vef_func_desc_t の max_result_length フィールドも追加します。
関数は STRING 結果の最大長(文字数)を宣言でき、これによりマテリアライズされた結果
(GROUP BY/DISTINCT の一時テーブル、CREATE TABLE ... SELECT、UNION)が引数の幅で
切り詰められることなく、完全な値を保持します。0 の場合は引数の幅にフォールバックします。
これは STRING 専用で、VEF_MAX_RESULT_LENGTH(16 MiB / 16777216 バイト)を上限とします。
これより大きい宣言値はこの上限に制限されます。FuncBuilder の max_result_length()
ビルダーメソッドで設定します。
プロトコル V4 は活発に開発が進められています。オプトインする拡張機能は
-DVSQL_USE_DEV_ABI=ON を付けてビルドする必要があり、安定化する前に
ABI が変更されることを想定しておく必要があります。
vef_type_desc_t と vef_func_desc_t の完全な定義については abi/types.h を、
variable_length_type() については type_builder.h を、max_result_length()
については func_builder.h を参照してください。
この値はコンパイル時の定数 vef_server_protocol_version
を反映しており、実行時に変更することはできません。
villagesql_build_info
読み取り専用のグローバル変数です。このサーバーバイナリがどのようにビルドされたかに関するメタデータ(ソースコミット、ワークツリーの状態、およびビルド環境)を含む JSON オブジェクトを返します。
スコープ: グローバル、読み取り専用。実行時に設定できません。
クリーンなリリースビルドでは
is_dirty: false となり、3つのファイル数フィールドはすべてゼロになります。
変更されたワークツリーからのビルドでは、files_added、files_deleted、または
files_modified にゼロ以外の数が表示されます。
次のステップ
拡張機能の管理
拡張機能の監視とトラブルシューティング
拡張機能のインストール
新しい拡張機能の追加
拡張機能のアーキテクチャ
内部構造の理解
利用可能な拡張機能
拡張機能カタログの閲覧

