Anteriormente, para saber quais os índices existentes numa tabela e como estavam configurados, era necessário realizar uma verificação manual através do Editor de Estrutura. Com a nova função `getIndexes()`, os programadores 4D podem agora analisar os índices diretamente a partir do código, facilitando a verificação da configuração em tempo de execução, a criação de ferramentas de diagnóstico ou a validação automática das implementações.
A 4D adiciona uma nova função para analisar os índices diretamente a partir do código:
var $indexes := ds.MyTable.getIndexes()
A chamada à função `getIndexes()` numa tabela devolve uma coleção que descreve todos os índices definidos nessa tabela, quer tenham sido criados através do Editor de Estrutura, quer através de código com ` CREATE INDEX`.
Detalhes da Entrada do Índice
Cada entrada na coleção devolvida descreve um índice com os seguintes atributos:
| Atributo | Tipo | Descrição |
|---|---|---|
tipo |
inteiro | Tipo de algoritmo de indexação (relevante quando «Automático» estiver selecionado) |
automático |
booleano | Verdadeiro se o índice «Automático» estiver selecionado |
nome |
texto | Nome do índice, se disponível |
tipo |
texto | «palavras-chave» ou «normal» |
atributos |
coleção | Campos abrangidos pelo índice |
UUID |
texto | Identificador único do índice |
uniqueKey |
booleano | Se o índice impõe a exclusividade |
Isto permite verificar o estado do índice de um campo em tempo de execução, o que é particularmente útil para diagnósticos e scripts de implementação automatizados.

var $indexes:=ds.Discuss.getIndexes()

As vantagens
Antes da função `getIndexes()`, confirmar se um índice crítico existia ou se estava configurado com o algoritmo correto implicava abrir o Editor de Estrutura e verificar manualmente. Isso não é escalável para fluxos de trabalho automatizados. Com esta função, pode:
- Validar implementações: verificar se todos os índices esperados estão presentes logo após uma atualização da estrutura ou uma migração da base de dados.
- Criar ferramentas de diagnóstico: apresentar a configuração dos índices num painel de administração ou num ponto final de verificação de integridade.
- Auditar restrições de exclusividade: identificar rapidamente quais os campos protegidos por um índice `uniqueKey`.
- Identificar o tipo de índice: distinguir entre índices padrão, de palavra-chave e vetoriais (Cosine, Dot, Euclidean) através da inspeção dos atributos «type» e «kind».
Conclusão
getIndexes() colmata uma lacuna na API de gestão de índices da 4D: os programadores já não precisam de depender da interface do utilizador para saber quais os índices existentes numa tabela. Em combinação com CREATE INDEX, SET INDEXe DELETE INDEX, completa um fluxo de trabalho totalmente programático para a gestão de índices.
De momento, não é possível deixar comentários nesta publicação.