システムビュー
INFORMATION_SCHEMA.EXTENSIONS
現在インストールされているVillageSQL拡張の一覧を表示します。INSTALL EXTENSION と UNINSTALL 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 EXTENSION は Failed to load VEF extension エラーで失敗します。
プロトコル V4 は、可変長カスタム型のサポートを追加し、関数が文字列結果の最大長を
宣言できるようにします。V4 はオプトインの開発版 ABI の下で活発に開発が進められており、
安定化する前に変更される可能性があります。拡張機能を開発する場合は、各プロトコル
バージョンで利用可能になる機能について
タイプ操作 と
C++での拡張機能の作成 を参照してください。
この値はコンパイル時の定数
vef_server_protocol_version
を反映しており、実行時に変更することはできません。
villagesql_build_info
読み取り専用のグローバル変数です。このサーバーバイナリがどのようにビルドされたかに関するメタデータ(ソースコミット、ワークツリーの状態、およびビルド環境)を含む JSON オブジェクトを返します。
スコープ: グローバル、読み取り専用。実行時に設定できません。
変更されたワークツリーからのビルドでは、
files_added、files_deleted、または
files_modified にゼロ以外の数が表示され、その場合 is_dirty は true になります。
リリースビルド(バージョンにプレリリースのサフィックスが付いていないビルド)では、
同一のソースから同一のバイナリが生成されるように、この3つのカウントが強制的にゼロになり、
build_timestamp と build_host が空になります。これが、リリースビルドでは常に
is_dirty が false になる理由です。
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である必要があるためです。まず該当する拡張機能をアンインストールしてください。
利用可能なプレビュー機能の一覧と、拡張機能がそれらをどう使うかについては、プレビュー機能 を参照してください。
次のステップ
拡張機能の管理
拡張機能の監視とトラブルシューティング
拡張機能のインストール
新しい拡張機能の追加
拡張機能のアーキテクチャ
内部構造の理解
利用可能な拡張機能
拡張機能カタログの閲覧

