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 9.7.
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-9.7). Isso é diferente
de villagesql_schema_version, que informa a versão gravada no
catálogo de metadados interno no mesmo formato {codebase}_{version}.
villagesql_schema_version
Variável global somente leitura. Retorna a versão gravada no catálogo de metadados interno, no mesmo formato{codebase}_{version} que villagesql_server_version.
Uma string vazia significa que o schema do VillageSQL ainda não foi inicializado
neste diretório de dados.
villagesql_vef_server_protocol
Variável global somente leitura. Retorna a maior versão do protocol VEF compatível com este build do servidor. Ao instalar uma extensão, o servidor e a extensão usam a maior versão do protocol que ambos suportam. Uma extensão compilada com uma versão de protocol instável obsoleta não pode ser instalada — oINSTALL EXTENSION falha com Failed to load VEF extension.
O Protocol V4 adiciona suporte a tipos personalizados de comprimento variável e
permite que uma função declare o comprimento máximo de seus resultados de
string. Ele está em desenvolvimento ativo sob a ABI de desenvolvimento
(opt-in) e pode mudar antes de estabilizar. Se você desenvolve extensões,
consulte Operações de Tipo e
Criando Extensões em C++ para saber o que
cada versão do protocol habilita.
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 a partir de uma work-tree modificada mostra contagens diferentes de zero em
files_added, files_deleted ou files_modified, e nesse caso is_dirty é true. Um
build de release — cuja versão não carrega sufixo de pré-lançamento — força essas três
contagens a zero e deixa build_timestamp e build_host vazios, para que fontes
idênticas produzam um binário idêntico, e é por isso que is_dirty é sempre false
em um release.
vsql_allow_preview_extensions
Controla se o servidor aceita extensões que exigem uma capability em preview. Enquanto estiverOFF, instalar uma delas falha:
SET PERSIST:
Use
SET PERSIST, não SET GLOBAL. Extensões em preview são carregadas na
inicialização do servidor, então o valor precisa sobreviver a um restart, e
somente SET PERSIST grava em mysqld-auto.cnf; por isso SET GLOBAL é
rejeitado. Antes de mysqld-auto.cnf existir — em um servidor sendo iniciado
pela primeira vez — passe --vsql_allow_preview_extensions=ON na linha de
comando do mysqld.
Desativar novamente é rejeitado enquanto qualquer extensão que use uma
capability em preview ainda estiver instalada, porque essas extensões exigem
que o valor esteja ON quando o servidor inicia. Desinstale-as primeiro.
Veja Capabilities Preview para
a lista de capabilities em preview e o que uma extensão faz com elas.
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

