SQLite 3.44 ya fue liberado y estas son sus novedades
Se dio a conocer el lanzamiento de la nueva versión de SQLite 3.44, la cual presenta mejoras de soporte para nuevas funciones, asi como también optimizaciones, diversas mejoras y más.
SQLite es un motor de base de datos relacional liviano accesible a través del lenguaje SQL. A diferencia de los servidores de bases de datos tradicionales, como MySQL o PostgreSQL, su particularidad es no reproducir el esquema cliente-servidor habitual, sino integrarse directamente en los programas. De hecho, toda la base de datos (declaraciones, tablas, índices y datos) se almacena en un archivo independiente de la plataforma.
Gracias a su extrema ligereza, SQLite es uno de los motores de bases de datos más utilizados en el mundo. Se utiliza en muchos programas de consumo y también es muy popular en los sistemas integrados, incluidos los teléfonos inteligentes más modernos.
Principales novedades de SQLite 3.44
En esta nueva versión que se presenta de SQLite 3.44 se destaca el soporte para las nuevas funciones agregadas que permiten una expresión «ORDER BY« después de su último parámetro para procesar los argumentos de la función en el orden especificado. Esto puede ser importante para funciones como string_agg() y json_group_array() .
Otro de los cambios que se destaca de la nueva versión son las optimizaciones del planificador de consultas con escaneos de índice parciales al especificar un valor constante para una columna de la tabla en la cláusula WHERE, esto aumenta la probabilidad de que el índice parcial sea un índice de cobertura. Se menciona que debido a regresiones identificadas, la optimización del escaneo de vistas agregada en la versión 3.42.0 se ha deshabilitado.
En SQLite 3.44, el comando «PRAGMA integrity_check» ahora implementa una verificación de coherencia del contenido en varias tablas virtuales integradas utilizando el nuevo método xIntegrity. Esto funciona para las extensiones FTS3, FTS4, FTS5, RTREE y GEOPOLY.
Ademas de ello, en la configuración SQLITE_DBCONFIG_DEFENSIVE se proporciona protección contra la habilitación del modo PRAGMA writable_schema, ya que anteriormente, writable_schema se podía activar, pero en realidad no permitía que se pudiera escribir en el esquema y ahora simplemente no se puede activar.
En la versión de SQLite 3.44 para Windows se destaca que cuando se compila con el compilador de Microsoft C, la configuración SQLITE_USE_SEH (Manejo de excepciones estructurado) ahora está habilitado de forma predeterminada. Se puede deshabilitar usando -DSQLITE_USE_SEH=0. Ademas la CLI para Windows ahora utiliza de forma predeterminada UTF-8 tanto para entrada como para salida en plataformas que lo admiten. La opción –no-utf8 está disponible para desactivar la compatibilidad con UTF8.
Por otra parte, SQLite ahora realiza una detección en tiempo de ejecución de sí el hardware subyacente admite o no «long double» con una precisión mayor que «double» y utiliza rutinas de punto flotante apropiadas.
De los demás cambios que se destacan de esta nueva versión:
- Se agregó soporte para funciones SQL escalares concat() y concat_ws(), compatible con PostgreSQL, MS SQL Server y MySQL.
- Se agregó soporte para la función agregada string_agg(), compatible con PostgreSQL y MS SQL Server.
La función SQL strftime() ahora admite los especificadores «%e», «%F», «%I», «%k», «%l», «%p», «%P», «%R», «%T» y «%u». - Muchos mensajes de error asociados con la instrucción CREATE TABLE ahora se muestran después de ejecutar la instrucción CREATE TABLE, en lugar de después de que se use la tabla por primera vez.
- Se etiquetaron las tablas virtuales integradas FTS3, FTS4, FTS5, RTREE y GEOPOLY como SQLITE_VTAB_INNOCUOUS para que puedan usarse dentro de desencadenadores en implementaciones de alta seguridad.
- La instrucción PRAGMA case_SENSITIVE_like está en desuso, ya que su uso cuando el esquema contiene operadores LIKE puede generar informes de corrupción de la base de datos por parte de PRAGMA Integrity_check .
- Se deshabilito la optimización del escaneo de vista ya que estaba provocando múltiples regresiones de rendimiento.
Finalmente, si estás interesado en poder conocer más al respecto debes saber que el código SQLite se distribuye en el dominio público, es decir se puede utilizar sin restricciones y de forma gratuita para cualquier propósito.
Puedes consultar más detalles sobre este nuevo lanzamiento en el siguiente enlace.