Skip to main content
Query extension metadata and server state using the standard SQL interfaces below.

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.
Known columns: Example:
Illustrative output (actual version strings depend on installed extensions):
EXTENSION_NAME values are lowercase, matching the name passed to make_extension(). The view reflects the current installed state.

INFORMATION_SCHEMA.COLUMNS (Custom Types)

Columns using custom extension types are visible through the standard INFORMATION_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:
Sample Output:

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 after INSTALL 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.
Scope: Global, read-only at runtime. Configure in my.cnf:
Only a single directory is supported. See Managing Extensions for placement and troubleshooting.

villagesql_server_version

Read-only global variable. Returns the VillageSQL version string compiled into the server binary. This is distinct from villagesql_schema_version, which tracks the internal metadata catalog version.
Scope: Global, read-only. Cannot be set at runtime.

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 in types.h to determine which ABI features are available during registration.
The value reflects the compile-time constant vef_server_protocol_version and cannot be changed at runtime.

Next Steps

Managing Extensions

Monitor and troubleshoot extensions

Install Extensions

Add new extensions

Extension Architecture

Understand the internals

Available Extensions

Browse extension catalog