Sintaxe do Comando
VERSION é fornecido, o servidor abre {name}-{version}.veb,
compara a versão com o manifesto e aborta se elas diferirem:
{name}.veb, ou, se apenas VEBs
versionados estiverem presentes, o único {name}-{version}.veb. Consulte Selecionando uma Versão.
As extensões são distribuídas como arquivos
.veb (VillageSQL Extension Bundle) que contêm bibliotecas compiladas e metadados.Selecionando uma Versão
Os arquivos VEB emveb_dir podem ser nomeados como {name}.veb (sem versão) ou {name}-{version}.veb (versionado). Para instalar um VEB versionado específico, adicione uma cláusula VERSION:
VERSION, o servidor abre vsql_uuid-0.2.0.veb e verifica se a versão em seu manifest.json corresponde a 0.2.0.
Sem VERSION, o servidor resolve o arquivo da seguinte forma:
- Se
{name}.vebexistir, instale-o; a versão é lida de seumanifest.json. - Caso contrário, se existir exatamente um
{name}-{version}.veb, instale-o; a versão no nome do arquivo é verificada contra seumanifest.json. - Caso contrário, a instalação falha e você deve especificar uma versão.
Convenções de Nomenclatura de Extensões
O VillageSQL usa diferentes convenções de nomenclatura em diferentes contextos:- Comandos SQL: Use sublinhados:
INSTALL EXTENSION vsql_uuid - Nomes de repositório: Use hifens:
github.com/villagesql/vsql-uuid - Nomes de arquivo: Use sublinhados:
vsql_uuid.veb - manifest.json: Use sublinhados para corresponder ao SQL:
"name": "vsql_uuid"
Privilégio Necessário
INSTALL EXTENSION, UNINSTALL EXTENSION e ALTER EXTENSION são protegidos pelo
privilégio dinâmico EXTENSION_ADMIN. Essas instruções carregam código nativo de
extensão no servidor em execução, portanto exigem um privilégio administrativo e
não estão disponíveis para contas sem privilégios.
EXTENSION_ADMIN é um privilégio dinâmico concedido no escopo global (ON *.*):
SUPER é aceito como alternativa para compatibilidade retroativa, então uma conta que
já possui SUPER pode executar essas instruções sem uma concessão separada.
Um diretório de dados criado por --initialize ou --initialize-insecure concede
EXTENSION_ADMIN diretamente a root@localhost, portanto um servidor novo não precisa de
concessão manual. Quando um diretório de dados existente é atualizado no lugar, toda conta
de usuário que possui SUPER recebe EXTENSION_ADMIN — mas somente se nenhuma conta já o
possuir, de modo que um servidor atualizado uma vez não é preenchido novamente em
atualizações posteriores. As contas de sistema reservadas mysql.* são excluídas.
Uma conta sem nenhum dos privilégios é rejeitada antes que qualquer trabalho de extensão comece:
EXTENSION_ADMIN/SUPER contra as concessões atuais da conta em cada
instrução DDL de extensão, portanto uma sessão existente não mantém o privilégio
após uma revogação — sua próxima instrução falha com o mesmo
ERROR 1227 (42000) mostrado acima.
Pré-requisitos
- Instância do VillageSQL Server em execução
- Acesso administrativo (root ou equivalente)
Instalando Extensões Internas
As extensões internas incluídas com o VillageSQL já estão no veb_dir. Basta habilitá-las:Verifique a Instalação
Teste a Funcionalidade
Instalando Extensões Externas
Para extensões baixadas ou compiladas separadamente:Seu servidor deve ter
veb_dir configurado antes de você poder instalar extensões externas. Consulte Configurando o veb_dir.1. Copie o Arquivo .veb
Localize o diretório de extensões do seu servidor e copie o arquivo.veb para ele:
2. Instale a Extensão
VERSION:
{name}-{version}.veb existe) — um
caminho de código diferente do erro Version mismatch in '<file>' mostrado
anteriormente, que ocorre quando o próprio arquivo versionado existe.
3. Verifique a Instalação
Solução de Problemas
Para mais soluções de problemas, consulte Gerenciando Extensões.
Próximos Passos
Gerenciando Extensões
Monitore e solucione problemas de extensões instaladas
Extensões Disponíveis
Navegue pelas extensões que você pode instalar
Criando Extensões em C++
Compile suas próprias extensões

