Versión de SQLite 3.40

Publicouse a versión de SQLite 3.40, un DBMS lixeiro deseñado como biblioteca de complementos. O código SQLite distribúese no dominio público, é dicir. pódese usar sen restricións e de forma gratuíta para calquera propósito. O apoio financeiro aos desenvolvedores de SQLite é proporcionado por un consorcio especialmente creado, que inclúe empresas como Adobe, Oracle, Mozilla, Bentley e Bloomberg.

Principais cambios:

  • Implementouse a capacidade experimental de compilar SQLite nun código WebAssembly intermedio que se pode executar nun navegador web e é axeitado para organizar o traballo coa base de datos desde aplicacións web en linguaxe JavaScript. Os desenvolvedores web dispoñen dunha interface orientada a obxectos de alto nivel para traballar con datos ao estilo de sql.js ou Node.js, que se engloba nunha API C de baixo nivel e unha API baseada no mecanismo Web Worker que che permite para crear controladores asíncronos que se executan en fíos separados. Os datos que almacenan as aplicacións web na versión WASM de SQLite pódense almacenar no lado do cliente mediante OPFS (Origin-Private FileSystem) ou a API window.localStorage.
  • Engadiuse a extensión de recuperación, deseñada para recuperar datos de ficheiros danados da base de datos. A interface de liña de comandos usa o comando ".recover" para restaurar.
  • Mellorouse o rendemento do planificador de consultas. Elimináronse as restricións ao utilizar índices con táboas con máis de 63 columnas (anteriormente non se aplicaba a indexación para operacións con columnas cuxo número ordinal superase 63). Mellora a indexación dos valores empregados nas expresións. Deixou de cargar cadeas e bloques grandes do disco ao procesar os operadores NOT NULL e IS NULL. Excluída a materialización de vistas para as que só se realiza unha exploración completa.
  • Na base de código, en lugar de usar o tipo "char *", úsase un tipo separado sqlite3_filename para representar os nomes de ficheiros.
  • Engadiuse a función interna sqlite3_value_encoding().
  • Engadiuse o modo SQLITE_DBCONFIG_DEFENSIVE, que prohibe cambiar a versión do esquema de almacenamento.
  • Engadíronse comprobacións adicionais á implementación do parámetro "PRAGMA integrity_check". Por exemplo, as táboas sen o atributo STRICT non deben conter valores numéricos en columnas TEXT e valores de cadea con números en columnas NUMERIC. Tamén se engade comprobar a corrección da orde das filas nas táboas co atributo "SEN FILA".
  • A expresión "VACUUM INTO" respecta a configuración de "PRAGMA síncrona".
  • Engadiuse a opción de compilación SQLITE_MAX_ALLOCATION_SIZE para limitar o tamaño do bloque ao asignar memoria.
  • O algoritmo para xerar números pseudoaleatorios integrado en SQLite pasou de usar o cifrado de fluxo RC4 a Chacha20.
  • Permítese usar índices co mesmo nome en diferentes esquemas de datos.
  • Realizáronse optimizacións de rendemento para reducir a carga da CPU nun 1% aproximadamente durante a actividade típica.

Fonte: opennet.ru

Engadir un comentario