Skip to main content
使用以下标准 SQL 接口查询扩展元数据和服务器状态。

系统视图

INFORMATION_SCHEMA.EXTENSIONS

列出所有当前安装的 VillageSQL 扩展。
INSTALL EXTENSIONUNINSTALL EXTENSION 是 VillageSQL SQL 扩展。 它们不是 MySQL 8.4 标准语法的组成部分。
已知列: 示例:
示例输出(实际版本字符串取决于已安装的扩展):
EXTENSION_NAME 值均为小写,与传递给 make_extension() 的名称匹配。 该视图反映当前的安装状态。 这四个 PENDING_* 列跟踪已计划的 ALTER EXTENSION ... AT RESTART 版本更改。有关工作流程,请参阅 管理扩展

INFORMATION_SCHEMA.COLUMNS(自定义类型)

使用自定义扩展类型的列可以通过标准的 INFORMATION_SCHEMA.COLUMNS 视图查看。自定义类型在 DATA_TYPECOLUMN_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-8.4)。这与 villagesql_schema_version 不同, 后者以相同的 {codebase}_{version} 格式报告内部元数据目录上标记的版本。
**作用域:**全局,只读。无法在运行时设置。

villagesql_vef_server_protocol

只读全局变量。返回此服务器构建支持的最高 VEF 协议版本。扩展作者可以将此值与 types.h 中的协议常量进行比较,以确定在注册期间哪些 ABI 功能可用。
协议 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_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_dirtyfalse,且所有三个文件计数字段均为零。 从修改过的工作树构建时,会在 files_addedfiles_deletedfiles_modified 中显示非零计数。

后续步骤

管理扩展

监控和排除扩展故障

安装扩展

添加新的扩展

扩展架构

了解内部结构

可用扩展

浏览扩展目录