系统视图
INFORMATION_SCHEMA.EXTENSIONS
列出所有当前安装的 VillageSQL 扩展。INSTALL EXTENSION 和 UNINSTALL EXTENSION 是 VillageSQL SQL 扩展。
它们不是 MySQL 9.7 标准语法的组成部分。
示例:
EXTENSION_NAME 值均为小写,与传递给 make_extension() 的名称匹配。
该视图反映当前的安装状态。
这四个 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 扩展包文件的目录路径。在 my.cnf 的 [mysqld] 下设置;无法在不重新启动服务器的情况下更改。
my.cnf 中配置:
villagesql_server_version
只读全局变量。返回编译到服务器二进制文件中的 VillageSQL 版本字符串。格式为{codebase}_{major}.{minor}.{patch}[-prerelease],其中 codebase 指明此构建
所派生的上游分叉(此处为 mysql-9.7)。这与 villagesql_schema_version 不同,
后者以相同的 {codebase}_{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。发布构建(版本号不带预发布后缀的构建)
会将这三个计数强制归零,并将 build_timestamp 和 build_host 留空,
以确保相同的源代码生成相同的二进制文件——这也是发布构建的 is_dirty
始终为 false 的原因。
vsql_allow_preview_extensions
控制服务器是否接受需要预览功能的扩展。当该变量为OFF 时,安装此类扩展会失败:
SET PERSIST 开启:
请使用
SET PERSIST,而不是 SET GLOBAL。预览扩展在服务器启动时加载,因此该值必须在重启后仍然有效,而只有 SET PERSIST 会将其写入 mysqld-auto.cnf;因此 SET GLOBAL 会被拒绝。在 mysqld-auto.cnf 尚不存在之前(例如服务器首次启动时),请改为在 mysqld 命令行中传入 --vsql_allow_preview_extensions=ON。
只要仍有使用预览功能的扩展处于已安装状态,就无法将该值重新关闭,因为这些扩展要求服务器启动时该设置为 ON。请先卸载这些扩展。
有关可用预览功能的列表以及扩展如何使用它们,请参阅预览功能。
后续步骤
管理扩展
监控和排除扩展故障
安装扩展
添加新的扩展
扩展架构
了解内部结构
可用扩展
浏览扩展目录

