lanzamiento , una base de datos liviana diseñada como una biblioteca conectable. El código de SQLite se distribuye como dominio público, es decir, puede ser utilizado sin restricciones y gratuitamente para cualquier propósito. El soporte financiero para los desarrolladores de SQLite es proporcionado por un consorcio creado específicamente, que incluye empresas como Adobe, Oracle, Mozilla, Bentley y Bloomberg.
Principales :
- Se ha añadido soporte para (columnas calculadas), que permiten definir una columna cuyos valores se calculan automáticamente a partir del contenido de otra columna al crear una tabla. Las columnas generadas pueden ser virtuales (creadas dinámicamente en cada acceso) o almacenadas en la base de datos (guardadas en cada actualización de columnas relacionadas). El contenido de las columnas generadas solo está disponible en modo de lectura (los cambios se realizan únicamente a través de la modificación del valor en otra columna involucrada en el cálculo). Por ejemplo:
CREATE TABLE t1(
a INTEGER PRIMARY KEY,
b INT,
c TEXT,
d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,
e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED
); - Se añadieron PRAGMA , configuración y la opción de compilación «-DSQLITE_TRUSTED_SCHEMA», que permiten gestionar la inclusión de protección contra mediante la modificación del esquema de datos en la base de datos. Con la protección activa, se limita el uso de funciones SQL (no marcadas como SQLITE_INNOCUOUS) en desencadenadores, vistas, expresiones CHECK y DEFAULT, índices y columnas generadas. También se desactiva el uso de tablas virtuales en desencadenadores y vistas, a menos que la tabla virtual se declare explícitamente con la bandera SQLITE_VTAB_INNOCUOUS.
- Se ha implementado la posibilidad de asignar a ciertas funciones SQL en aplicaciones propiedades (funciones inofensivas que no dependen de parámetros externos y no pueden utilizarse para realizar acciones maliciosas) y (solo llamada directa en consultas SQL, sin posibilidad de uso en desencadenadores, vistas y estructuras de datos);
- Módulo añadido con la implementación de funciones para el manejo de UUID (RFC-4122);
- Se añadió PRAGMA y la función para gestionar el tamaño máximo de la pila;
- En PRAGMA se añadió la salida del tipo, propiedades y número de argumentos de cada función;
- En la tabla virtual DBSTAT modo de agregación de datos;
- En sqlite3_open_v2() se implementó la opción SQLITE_OPEN_NOFOLLOW, que permite prohibir la apertura de enlaces simbólicos;
- Para el argumento , pasado a las funciones JSON, se añadió soporte para la notación de arrays «#-N»;
- En el sistema de distribución de memoria se ha implementado el soporte para dos grupos separados de memoria, cada uno de los cuales puede utilizarse para asignar bloques de diferente tamaño (la separación permite ampliar la aplicación del sistema lookaside, reduciendo al mismo tiempo el tamaño del búfer asignado a cada conexión de 120 a 48 KB);
- Se ha descontinuado el soporte para PRAGMA , que era incompatible con VACUUM, columnas generadas e índices descendentes (el soporte para el formato heredado se puede restaurar a través de la bandera SQLITE_DBCONFIG_LEGACY_FILE_FORMAT en sqlite3_db_config()).
Fuente: opennet.ru
