Lanzamiento de DBMS SQLite 3.31 con soporte para columnas generadas

publicado relizar SQLite 3.31.0, un DBMS liviano diseñado como una biblioteca de complementos. El código SQLite se distribuye como dominio público, es decir. Puede utilizarse sin restricciones y de forma gratuita para cualquier fin. El apoyo financiero a los desarrolladores de SQLite lo proporciona un consorcio especialmente creado, que incluye empresas como Adobe, Oracle, Mozilla, Bentley y Bloomberg.

El principal cambios:

  • Soporte agregado columnas generadas (columnas calculadas), que le permiten definir una columna cuando crea una tabla cuyo valor se calcula automáticamente en función del contenido de otra columna. Las columnas generadas pueden ser virtuales (generadas sobre la marcha con cada acceso) o almacenadas en la base de datos (guardadas cada vez que se actualizan las columnas relacionadas). El contenido de las columnas generadas está disponible sólo en modo lectura (los cambios se realizan sólo mediante la modificación del valor en otra columna involucrada en el cálculo). Por ejemplo:

    CREAR TABLA t1(
    una CLAVE PRIMARIA ENTERA,
    bINT,
    cTEXTO,
    d INT GENERADO SIEMPRE COMO (a*abs(b)) VIRTUAL,
    e TEXTO GENERADO SIEMPRE COMO (substr(c,b,b+1)) ALMACENADO
    );

  • Añadido PRAGMA esquema_confiable, configuración SQLITE_DBCONFIG_TRUSTED_SCHEMA y la opción de ensamblaje “-DSQLITE_TRUSTED_SCHEMA”, que le permiten controlar la inclusión de protección contra ataques mediante la modificación del esquema de datos en la base de datos. La protección activa restringe el uso de funciones SQL (no marcadas como SQLITE_INNOCUOUS) en activadores, vistas, declaraciones CHECK y DEFAULT, índices y columnas generadas. El uso de tablas virtuales en activadores y vistas también está deshabilitado a menos que la tabla virtual se declare explícitamente con el indicador SQLITE_VTAB_INNOCUOUS.
  • Implementada la capacidad de asignar propiedades a funciones SQL definidas en aplicaciones. SQLITE_INNOCUOUS (funciones inofensivas que no dependen de parámetros externos y no pueden usarse para realizar acciones maliciosas) y SQLITE_DIRECTONLY (solo llamada directa en consultas SQL, sin posibilidad de uso en disparadores, vistas y diagramas de estructura de datos);
  • Módulo agregado uuid con implementación de funciones para procesamiento UUID (RFC-4122);
  • Añadido PRAGMA límite_de_montón_duro y función sqlite3_hard_heap_limit64() controlar el tamaño máximo del montón;
  • En PRAGMA lista_funciones salida agregada de tipo, propiedades y número de argumentos de cada función;
  • A la tabla virtual DBSTAT adicional modo de agregación de datos;
  • sqlite3_open_v2() implementa la opción SQLITE_OPEN_NOFOLLOW, que le permite deshabilitar la apertura de enlaces simbólicos;
  • para argumento TRAYECTORIA, pasado a funciones JSON, se agregó soporte para la notación de matriz “#-N”;
  • En el sistema de distribución de memoria. mira a un lado Se ha implementado soporte para dos grupos de memoria separados, cada uno de los cuales se puede usar para asignar bloques de diferentes tamaños (la separación le permite expandir el uso del sistema de búsqueda, al tiempo que reduce el tamaño del búfer asignado a cada conexión de 120 a 48 KB);
  • El soporte de PRAGMA ha sido descontinuado. formato_archivo_heredado, que era incompatible con VACUUM, columnas generadas e índices descendentes (la compatibilidad con el formato heredado se puede devolver a través del indicador SQLITE_DBCONFIG_LEGACY_FILE_FORMAT en sqlite3_db_config()).

Fuente: opennet.ru

Añadir un comentario