La nueva versión de SQLite 3.33.0 ya fue liberada y estas son sus novedades

agosto 21, 2020 , 0 Comments

La nueva version de SQLite 3.33 ya fue liberada y en ella se integran algunos cambios bastante buenos, tales como por ejemplo la compatibilidad con UPDATE FROM siguiendo la sintaxis de PostgreSQL, además también se destaca la mejora la extensión ieee754 para admitir números IEEE 754 binary64 así como también un aumentado el tamaño máximo de los archivos de base de datos a 281 TB.

Para quienes desconocen del paquete SQLite es un DBMS ligero, diseñado como una biblioteca de complementos. El código SQLite se distribuye como dominio público, es decir se puede utilizar sin restricciones y de forma gratuita para cualquier propósito.

Es un paquete de software que es conocido por su construcción y operación utilizando una plataforma LFS-10.0.

Principales novedades de SQLite 3.33

Uno de los cambios mas importantes de esta nueva version es la implementación de UPDATE FROM para actualizar el contenido de la tabla en función de una selección de otra tabla esto usando la sintaxis correspondiente a PostgreSQL.

Según el equipo de SQLite, la idea de UPDATE FROM es una extensión de SQL que permite que una declaración UPDATE sea impulsada por otras tablas en la base de datos.

La tabla «objetivo» es la tabla específica que se actualiza. Otros motores de bases de datos relacionales también implementan UPDATE FROM, pero debido a que la construcción no es parte de los estándares SQL, cada producto implementa UPDATE FROM de manera diferente.

La implementación de SQLite se esfuerza por ser compatible con PostgreSQL. Las implementaciones de SQL Server y MySQL de la misma idea funcionan de manera un poco diferente.

Por la parte del control de integridad de PRAGMA, ahora es posible para verificar al azar solo ciertas tablas e índices relacionados (antes siempre verifica toda la base de datos), ya que PRAGMA realiza una verificación de la consistencia de la base de datos y el formateo de bajo nivel. Comprueba si hay entradas de tabla o índice que están fuera de secuencia, errores de CHECK, restricciones UNIQUE y NOT NULL, integridad de la lista libre y entradas de índice faltantes o en exceso, páginas faltantes y documentos con formato incorrecto.

En cuanto a las mejoras en la extensión ieee754, ahora es posible poder trabajar con números IEEE 754 binary64. El texto producido por la forma de un argumento de la función ieee754 () es legible por humanos, pero difícil de usar como parte de una expresión más grande.

Es por esto que se han agregado las rutinas ieee754_mantissa() y ieee754_exponent() para devolver los valores M y E correspondientes al valor F de su único argumento.

Se han realizado mejoras en el planificador de consultas, ya que el rendimiento se ha mejorado en «SELECT min (x) FROM t WHERE y IN (?,?,?)» cuando el índice t (x, y) está presente.

En el modo WAL (Write-Ahead Logging), si una operación de escritura falla, lo que genera una inconsistencia en los datos del archivo shm, las siguientes transacciones ahora pueden restaurar la integridad del archivo shm cuando hay transacciones de lectura activas, en lugar de mostrar un error SQLITE_PROTOCOL.

De los demás cambios que se implementan en esta nueva version, se destacan los siguientes:

  • Por otra parte, otro cambio importante es el aumento del tamaño máximo de la base de datos a 281 TB.
  • La CLI tiene extensiones decimales e ieee754 incorporadas.
  • Se agregó una extensión decimal con funciones aritméticas decimales de precisión arbitraria, hay tres funciones matemáticas disponibles que incluyen decimal_add, decimal_sub y decimal_mul (estas tres funciones suman, restan y multiplican sus argumentos, respectivamente).
  • Además también se ha agregado nuevos modos de formato de salida «box», «json», «markdown» y «table» a la interfaz de línea de comandos (CLI).
  • En el modo de salida «column», las columnas se expanden automáticamente por el contenido de la fila más larga.
  • El modo de salida «cotización» tiene en cuenta el valor del separador establecido por el comando».separator».

Finalmente si estás interesado en poder conocer mas al respecto sobre esta nueva version, puedes consultar los detalles dirigiéndote al 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.