System Views
INFORMATION_SCHEMA.EXTENSIONS
Lists all currently installed VillageSQL extensions.INSTALL EXTENSION and UNINSTALL EXTENSION are VillageSQL SQL extensions.
They are not part of standard MySQL 8.4 syntax.
Example:
EXTENSION_NAME values are lowercase, matching the name passed to make_extension().
The view reflects the current installed state.
The four PENDING_* columns track a scheduled ALTER EXTENSION ... AT RESTART
version change. See Managing Extensions for the workflow.
INFORMATION_SCHEMA.COLUMNS (Custom Types)
Columns using custom extension types are visible through the standardINFORMATION_SCHEMA.COLUMNS view. Custom types appear as
extension_name.type_name in the DATA_TYPE and COLUMN_TYPE columns
(e.g., vsql_complex.COMPLEX).
Example:
INFORMATION_SCHEMA.EXTENSION_REGISTRATION
Exposes the in-memory VEF registration struct for each loaded extension as a JSON document. Use it to verify that the server parsed your extension’s functions, types, and system variables correctly afterINSTALL EXTENSION.
Common Queries
Find Extension Dependencies
Find which columns use a specific extension’s types before uninstalling:List All Extensions and Their Custom Type Columns
Find Tables Using Extension Types
System Variables
veb_dir
Read-only at runtime. Path to the directory where the server looks for.veb extension bundle files. Set in my.cnf under [mysqld]; cannot be changed without a server restart.
my.cnf:
villagesql_server_version
Read-only global variable. Returns the VillageSQL version string compiled into the server binary. The format is{codebase}_{major}.{minor}.{patch}[-prerelease], where codebase names the
upstream fork this build derives from (here, mysql-8.4). This is distinct
from villagesql_schema_version, which reports the version stamped on the
internal metadata catalog in the same {codebase}_{version} format.
villagesql_vef_server_protocol
Read-only global variable. Returns the highest VEF protocol version supported by this server build. Extension authors can compare this value against the protocol constants intypes.h to determine which ABI features are available
during registration.
What Protocol V4 adds
Extensions negotiating
VEF_PROTOCOL_4 or higher gain access to the
variable_length field on vef_type_desc_t. When set to true, the
type’s persisted size is determined per value rather than being a single
fixed footprint. Variable-length types must also declare
max_persisted_length as an upper bound. Use the variable_length_type()
builder method on TypeBuilder to set this flag — do not write
variable_length directly. The field is read by the server only when the
negotiated protocol is VEF_PROTOCOL_4 or higher.
VEF_PROTOCOL_4 also adds the max_result_length field on vef_func_desc_t. A
function may declare the maximum length (in characters) of its STRING result so
a materialized result — GROUP BY/DISTINCT temp tables, CREATE TABLE ... SELECT,
UNION — holds the full value instead of truncating at the argument width. 0
falls back to the argument width; it is STRING-only and capped at
VEF_MAX_RESULT_LENGTH (16 MiB / 16777216 bytes). A larger declared value is
capped to it. Set it with the max_result_length() builder method on
FuncBuilder.
Protocol V4 is under active development. Extensions that opt in must be
built with -DVSQL_USE_DEV_ABI=ON and should expect ABI changes before it
stabilises.
See abi/types.h for the full vef_type_desc_t and vef_func_desc_t
definitions, type_builder.h for variable_length_type(), and
func_builder.h for max_result_length().
The value reflects the compile-time constant vef_server_protocol_version
and cannot be changed at runtime.
villagesql_build_info
Read-only global variable. Returns a JSON object with metadata about how this server binary was built: the source commit, work-tree state, and build environment.
Scope: Global, read-only. Cannot be set at runtime.
A clean release build has
is_dirty: false and all three file-count fields at zero.
A build from a modified work tree will show non-zero counts in files_added,
files_deleted, or files_modified.
Next Steps
Managing Extensions
Monitor and troubleshoot extensions
Install Extensions
Add new extensions
Extension Architecture
Understand the internals
Available Extensions
Browse extension catalog

