Lanzamiento de la base de datos SQLite 3.40

Se ha publicado la versión 3.40 de SQLite, una base de datos ligera presentada como una biblioteca cargable. El código de SQLite se distribuye como dominio público, es decir, puede ser utilizado sin restricciones y de forma gratuita para cualquier propósito. El apoyo financiero a los desarrolladores de SQLite es proporcionado por un consorcio creado especialmente, que incluye empresas como Adobe, Oracle, Mozilla, Bentley y Bloomberg.

Principales cambios:

  • Se ha implementado una función experimental para compilar SQLite en código intermedio WebAssembly, que puede ejecutarse en navegadores web y es adecuada para organizar el trabajo con bases de datos desde aplicaciones web en JavaScript. Se proporciona a los desarrolladores web una interfaz orientada a objetos de alto nivel para trabajar con datos al estilo de sql.js o Node.js, un envoltorio sobre la API de C de bajo nivel y una API basada en el mecanismo Web Worker, que permite crear controladores asíncronos que se ejecutan en hilos separados. Los datos que las aplicaciones web guardan en la versión WASM de SQLite pueden ser almacenados del lado del cliente mediante OPFS (Origin-Private FileSystem) o la API window.localStorage.
  • Se ha añadido la extensión recovery, diseñada para recuperar datos de archivos de base de datos dañados. En la interfaz de línea de comandos, se utiliza el comando «.recover» para la recuperación.
  • Se ha mejorado el funcionamiento del planificador de consultas. Se han eliminado las restricciones al usar índices con tablas que tienen más de 63 columnas (anteriormente, en las operaciones con columnas cuyo número de orden supera 63, no se aplicaba indexación). Se ha mejorado la indexación de valores utilizados en expresiones. Se ha detenido la carga desde el disco de grandes cadenas y blobs al procesar los operadores NOT NULL e IS NULL. Se ha excluido la materialización de vistas para las cuales se realiza un escaneo completo solo una vez.
  • En la base del código, se ha utilizado un tipo separado sqlite3_filename en lugar del tipo «char *» para representar nombres de archivos.
  • Se ha añadido la función interna sqlite3_value_encoding().
  • Se ha añadido el modo SQLITE_DBCONFIG_DEFENSIVE, que prohíbe el cambio de la versión del esquema de almacenamiento de datos.
  • Se han añadido comprobaciones adicionales a la implementación del parámetro «PRAGMA integrity_check». Por ejemplo, las tablas sin el indicador STRICT no deben contener valores numéricos en columnas de tipo TEXT ni valores de texto que sean números en columnas de tipo NUMERIC. También se ha añadido una verificación de la corrección del orden de las filas en las tablas con el indicador «WITHOUT ROWID».
  • En la expresión «VACUUM INTO» se han tenido en cuenta las configuraciones de «PRAGMA synchronous».
  • Se ha añadido la opción de compilación SQLITE_MAX_ALLOCATION_SIZE, que permite limitar el tamaño de los bloques al distribuir memoria.
  • El algoritmo de generación de números pseudoaleatorios incorporado en SQLite ha sido cambiado de usar el cifrado de flujo RC4 a Chacha20.
  • Se permite el uso de índices con los mismos nombres en diferentes esquemas de datos.
  • Se han realizado optimizaciones de rendimiento que han permitido reducir la carga en la CPU en aproximadamente un 1% durante la actividad típica.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster