Views de Sistema
INFORMATION_SCHEMA.EXTENSIONS
Lista todas as extensões do VillageSQL atualmente instaladas.INSTALL EXTENSION e UNINSTALL EXTENSION são extensões SQL do VillageSQL.
Elas não fazem parte da sintaxe padrão do MySQL 8.4.
Exemplo:
EXTENSION_NAME são em minúsculas, correspondendo ao nome passado para make_extension().
A view reflete o estado atual da instalação.
As quatro colunas PENDING_* rastreiam uma mudança de versão agendada com ALTER EXTENSION ... AT RESTART.
Consulte Gerenciando Extensões para conhecer o fluxo de trabalho.
INFORMATION_SCHEMA.COLUMNS (Tipos Personalizados)
Colunas que usam tipos personalizados de extensões são visíveis por meio da view padrãoINFORMATION_SCHEMA.COLUMNS. Os tipos personalizados aparecem como
extension_name.type_name nas colunas DATA_TYPE e COLUMN_TYPE
(por exemplo, vsql_complex.COMPLEX).
Exemplo:
INFORMATION_SCHEMA.EXTENSION_REGISTRATION
Expõe a struct de registro VEF em memória de cada extensão carregada como um documento JSON. Use-a para verificar se o servidor analisou corretamente as funções, os tipos e as variáveis de sistema da sua extensão após oINSTALL EXTENSION.
Consultas Comuns
Encontrar Dependências de Extensões
Encontre quais colunas usam os tipos de uma extensão específica antes de desinstalá-la:Listar Todas as Extensões e Suas Colunas de Tipos Personalizados
Encontrar Tabelas que Usam Tipos de Extensões
Variáveis de Sistema
veb_dir
Somente leitura em tempo de execução. Caminho para o diretório onde o servidor procura arquivos de bundle de extensão.veb. Definida em my.cnf sob [mysqld]; não pode ser alterada sem reiniciar o servidor.
my.cnf:
villagesql_server_version
Variável global somente leitura. Retorna a string de versão do VillageSQL compilada no binário do servidor. O formato é{codebase}_{major}.{minor}.{patch}[-prerelease], onde codebase nomeia o
fork de origem do qual este build deriva (aqui, mysql-8.4). Isso é diferente
de villagesql_schema_version, que informa a versão gravada no
catálogo de metadados interno no mesmo formato {codebase}_{version}.
villagesql_vef_server_protocol
Variável global somente leitura. Retorna a maior versão do protocol VEF compatível com este build do servidor. Os autores de extensões podem comparar esse valor com as constantes de protocol emtypes.h para determinar quais recursos da ABI estão disponíveis
durante o registro.
O que o Protocol V4 adiciona
As extensões que negociam
VEF_PROTOCOL_4 ou superior ganham acesso ao
campo variable_length em vef_type_desc_t. Quando definido como true, o
tamanho persistido do tipo é determinado por valor, em vez de ser um único
espaço fixo. Os tipos de comprimento variável também devem declarar
max_persisted_length como um limite superior. Use o método construtor
variable_length_type() em TypeBuilder para definir essa flag (não escreva
variable_length diretamente). O campo é lido pelo servidor apenas quando o
protocol negociado é VEF_PROTOCOL_4 ou superior.
O VEF_PROTOCOL_4 também adiciona o campo max_result_length em vef_func_desc_t. Uma
função pode declarar o comprimento máximo (em caracteres) do seu resultado STRING para que
um resultado materializado (tabelas temporárias de GROUP BY/DISTINCT, CREATE TABLE ... SELECT,
UNION) contenha o valor completo em vez de truncá-lo na largura do argumento. 0
recorre à largura do argumento; aplica-se somente a STRING e é limitado a
VEF_MAX_RESULT_LENGTH (16 MiB / 16777216 bytes). Um valor declarado maior é
limitado a esse teto. Defina-o com o método construtor max_result_length() em
FuncBuilder.
O Protocol V4 está em desenvolvimento ativo. As extensões que optarem por ele devem ser
compiladas com -DVSQL_USE_DEV_ABI=ON e devem esperar mudanças na ABI antes que ele
estabilize.
Consulte abi/types.h para as definições completas de vef_type_desc_t e vef_func_desc_t,
type_builder.h para variable_length_type(), e
func_builder.h para max_result_length().
O valor reflete a constante de tempo de compilação vef_server_protocol_version
e não pode ser alterado em tempo de execução.
villagesql_build_info
Variável global somente leitura. Retorna um objeto JSON com metadados sobre como este binário do servidor foi compilado: o commit de origem, o estado da work-tree e o ambiente de compilação.
Escopo: Global, somente leitura. Não pode ser definida em tempo de execução.
Um build de release limpo tem
is_dirty: false e os três campos de contagem de arquivos em zero.
Um build a partir de uma work-tree modificada mostrará contagens diferentes de zero em files_added,
files_deleted ou files_modified.
Próximos Passos
Gerenciando Extensões
Monitore e solucione problemas de extensões
Instalando Extensões
Adicione novas extensões
Arquitetura de Extensões
Entenda os detalhes internos
Extensões Disponíveis
Navegue pelo catálogo de extensões

