SQLite 3.54 llega con mejoras de rendimiento, nueva CLI y dice adios a Windows XP

octubre 21, 2026 0 Comments

SQLite

Hace pocos días se dio a conocer el lanzamiento de la nueva version de SQLite 3.54, junto con su parche de corrección 3.54.1. Esta actualización introduce mejoras de rendimiento comprobadas de hasta un 7.5%, una línea de comandos potenciada con secuencias de escape y optimizaciones clave en el planificador de consultas. Además, la arquitectura dice adiós definitivamente a Windows XP.

Para quienes desconocen de SQLite, deben saber que este 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.

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.54

La nueva version de SQLite 3.54 presenta mejoras en la línea de comandos, ya que ahora interpreta secuencias de escape para reflejar información de estado en tiempo real, tales como transacciones abiertas (/x), bases de datos en memoria (/m), bases de datos de solo lectura (/r) o la versión actual del motor (/v).

Estas plantillas pueden configurarse dinámicamente mediante las variables de entorno SQLITE_PS1 y SQLITE_PS2. El comando .mode incorpora las opciones –ifmt y –fpfmt para dar formato preciso a los números enteros y de coma flotante, además de –rowcount on y –titles always para controlar la visibilidad de los encabezados, los cuales ahora se muestran por defecto incluso si la consulta no devuelve filas. Como reemplazo de la utilidad obsoleta sqlite3_analyzer, se ha integrado el comando .diskused, impulsado por la nueva extensión opcional diskused() para estimar el espacio ocupado por tablas e índices en el disco.

Otra de las novedades que presenta la nueva version se encuentra en el planificador de consultas, el cual ha sido optimizado para la ejecución de las operaciones UPDATE, evitando alteraciones en los índices de expresiones si el valor indexado no sufre modificaciones. Se ha acelerado el procesamiento lógico de sentencias redundantes como «expr OR TRUE» y «expr OR FALSE«. Además, la expresión DISTINCT ahora se ignora dentro de las subconsultas SELECT ubicadas a la derecha de un operador «IN», y las consultas UNION que incluyen la cláusula «LIMIT 1» se ejecutan con mayor rapidez consumiendo menos memoria.

Además de ello en SQLite 3.54 las herramientas de formato como printf() y format() incorporan las conversiones %J y %j para la correcta representación de literales de cadena JSON. Las funciones de fecha y hora suman los modificadores weekday -N y end of para facilitar los cálculos temporales.

El comando ALTER TABLE ahora genera un error estricto ante cualquier intento de añadir, eliminar o renombrar columnas utilizando los identificadores reservados ROWID, _ROWID_ u OID. Asimismo, la retrollamada del autorizador (authorizer callback) ahora evalúa las funciones SQL declaradas en las cláusulas DEFAULT durante la ejecución de sentencias CREATE TABLE. La interfaz sqlite3_limit() también ha sido expandida con los parámetros SQLITE_LIMIT_SCHEMA y SQLITE_LIMIT_TRIGGER_STEPS.

Por otra parte, la creación de archivos temporales ahora aprovecha la bandera O_TMPFILE en los sistemas Unix que admiten esta característica. Para Microsoft, SQLite ha descontinuado oficialmente el soporte para Windows XP y Windows CE, estableciendo a Windows Vista como la versión mínima requerida para la version de SQLite 3.54 y superior. Este salto arquitectónico permite abandonar el uso de CriticalSection e implementar bloqueos SRWL (Slim Reader/Writer Locks) para gestionar mutexes no recursivos, mejorando el rendimiento general en Windows.

Por ultimo y no menos importante, cabe destacar que la version de mantenimiento 3.54.1 fue liberada pocos días después del lanzamiento principal para abordar correcciones específicas reportadas por los usuarios, destacando la solución a una vulnerabilidad de desbordamiento de búfer en el montículo (heap-buffer overflow) que afectaba de manera exclusiva a las compilaciones de 32 bits.

Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.


Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.