Antes, para saber qué índices existían en una tabla y cómo estaban configurados, era necesario realizar una inspección manual a través del Editor de estructura. Con la nueva función `getIndexes()`, los desarrolladores 4D ahora pueden examinar los índices directamente desde el código, lo que facilita la verificación de la configuración en tiempo de ejecución, la creación de herramientas de diagnóstico o la validación automática de las implementaciones.
4D añade una nueva función para examinar los índices directamente desde el código:
var $indexes := ds.MyTable.getIndexes()
Al llamar a `getIndexes()` sobre una tabla, se devuelve una colección que describe todos los índices definidos en dicha tabla, tanto si se crearon con el Editor de estructura como si se crearon a través del código con `CREATE INDEX`.
Detalles de las entradas de índice
Cada entrada de la colección devuelta describe un índice con los siguientes atributos:
| Atributo | Tipo | Descripción |
|---|---|---|
type |
integer | Tipo de algoritmo de indexación (relevante cuando se selecciona «Automatic») |
automatic |
boolean | Verdadero si se selecciona el índice «Automatic» |
name |
text | Nombre del índice, si está disponible |
kind |
text | "keywords" o "regular" |
attributes |
collection | Campos incluidos en el índice |
UUID |
text | Identificador único del índice |
uniqueKey |
boolean | Indica si el índice exige la unicidad |
Esto permite verificar el estado del índice de un campo en tiempo de ejecución, lo cual resulta especialmente útil para el diagnóstico y los scripts de implementación automatizados.

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

Las ventajas
Antes de getIndexes(), confirmar que existía un índice crítico o que estaba configurado con el algoritmo correcto suponía abrir el Editor de estructura y comprobarlo manualmente. Eso no es escalable para flujos de trabajo automatizados. Con esta función, puede:
- Validar implementaciones: comprobar que todos los índices esperados estén presentes inmediatamente después de una actualización de la estructura o una migración de la base de datos.
- Crear herramientas de diagnóstico: mostrar la configuración de los índices en un panel de administración o en un punto final de comprobación de estado.
- Auditar restricciones de unicidad: detectar rápidamente qué campos están protegidos por un índice uniqueKey.
- Identificar el tipo de índice: distinguir entre índices estándar, de palabras clave y vectoriales (coseno, producto punto, euclidiano) inspeccionando los atributos type y kind.
Conclusión
getIndexes() subsana una carencia en la API de gestión de índices de 4D: los desarrolladores ya no tienen que depender de la interfaz de usuario para saber qué índices existen en una tabla. En combinación con CREATE INDEX, SET INDEX y DELETE INDEX, completa un flujo de trabajo totalmente programático para la gestión de índices.
Por el momento, no se pueden publicar comentarios en esta entrada.