In passato, per tenere traccia degli indici presenti in una tabella e della loro configurazione era necessario ricorrere a un controllo manuale tramite l’Editor di struttura. Grazie alla nuova funzione `getIndexes()`, gli sviluppatori 4D possono ora esaminare gli indici direttamente dal codice, semplificando la verifica della configurazione in fase di esecuzione, la creazione di strumenti di diagnostica o la convalida automatica delle distribuzioni.
4D aggiunge una nuova funzione per esaminare gli indici direttamente dal codice:
var $indexes := ds.MyTable.getIndexes()
La chiamata a `getIndexes()` su una tabella restituisce una raccolta che descrive ogni indice definito su quella tabella, indipendentemente dal fatto che sia stato creato tramite l’Editor di struttura o tramite codice con ` CREATE INDEX`.
Dettagli delle voci dell’indice
Ogni voce della raccolta restituita descrive un indice con i seguenti attributi:
| Attributo | Tipo | Descrizione |
|---|---|---|
type |
intero | Tipo di algoritmo di indicizzazione (rilevante quando è selezionata l’opzione “Automatico”) |
automatico |
booleano | Vero se è selezionato l’indice “Automatico” |
nome |
testo | Nome dell’indice, se disponibile |
tipo |
testo | "parole chiave" o "normale" |
attributi |
collezione | Campi coperti dall’indice |
UUID |
testo | Identificatore univoco dell’indice |
uniqueKey |
booleano | Se l’indice impone l’unicità |
Ciò consente di verificare lo stato dell’indice di un campo in fase di esecuzione, il che risulta particolarmente utile per la diagnostica e gli script di distribuzione automatizzata.

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

I vantaggi
Prima dell’introduzione di `getIndexes()`, per verificare l’esistenza di un indice critico o la corretta configurazione dell’algoritmo era necessario aprire l’Editor della struttura ed effettuare un controllo manuale. Questo approccio non è scalabile per i flussi di lavoro automatizzati. Con questa funzione è possibile:
- Convalidare le distribuzioni: verificare che tutti gli indici previsti siano presenti subito dopo un aggiornamento della struttura o una migrazione del database.
- Creare strumenti diagnostici: visualizzare la configurazione degli indici in un pannello di amministrazione o in un endpoint di controllo dello stato.
- Verificare i vincoli di unicità: individuare rapidamente quali campi sono protetti da un indice uniqueKey.
- Identificare il tipo di indice: distinguere gli indici standard, a parole chiave e vettoriali (Cosine, Dot, Euclidean) esaminando gli attributi `type` e `kind`.
Conclusione
getIndexes() colma una lacuna nell’API di gestione degli indici di 4D: gli sviluppatori non devono più fare affidamento sull’interfaccia utente per sapere quali indici esistono su una tabella. In combinazione con CREATE INDEX, SET INDEXe DELETE INDEX, completa un flusso di lavoro interamente programmatico per la gestione degli indici.
Al momento non è possibile lasciare commenti su questo post.