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

システムビュー

INFORMATION_SCHEMA.EXTENSIONS

現在インストールされているVillageSQL拡張の一覧を表示します。
INSTALL EXTENSIONUNINSTALL 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_tvariable_length フィールドにアクセスできるようになります。true に設定すると、 型の永続化サイズは単一の固定フットプリントではなく、値ごとに決定されます。可変長型は 上限として max_persisted_length も宣言する必要があります。このフラグを設定するには、 TypeBuildervariable_length_type() ビルダーメソッドを使用してください。variable_length を 直接書き込まないでください。このフィールドは、ネゴシエートされたプロトコルが VEF_PROTOCOL_4 以上の場合にのみサーバーによって読み取られます。 VEF_PROTOCOL_4vef_func_desc_tmax_result_length フィールドも追加します。 関数は STRING 結果の最大長(文字数)を宣言でき、これによりマテリアライズされた結果 (GROUP BY/DISTINCT の一時テーブル、CREATE TABLE ... SELECT、UNION)が引数の幅で 切り詰められることなく、完全な値を保持します。0 の場合は引数の幅にフォールバックします。 これは STRING 専用で、VEF_MAX_RESULT_LENGTH(16 MiB / 16777216 バイト)を上限とします。 これより大きい宣言値はこの上限に制限されます。FuncBuildermax_result_length() ビルダーメソッドで設定します。 プロトコル V4 は活発に開発が進められています。オプトインする拡張機能は -DVSQL_USE_DEV_ABI=ON を付けてビルドする必要があり、安定化する前に ABI が変更されることを想定しておく必要があります。 vef_type_desc_tvef_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_addedfiles_deleted、または files_modified にゼロ以外の数が表示されます。

次のステップ

拡張機能の管理

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

拡張機能のインストール

新しい拡張機能の追加

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

内部構造の理解

利用可能な拡張機能

拡張機能カタログの閲覧