Volver al inicio

SQLite 3.53: corrección de WAL y nuevas funciones

SQLite 3.53 corrige error crítico de corrupción de DB en modo WAL con conexiones paralelas. Añadido REINDEX EXPRESSIONS, json_array_insert y mejoras en CLI con QRF. Optimizadas consultas UNION/EXCEPT y conversiones float.

SQLite 3.53 ya está disponible: error de WAL corregido, JSON mejorado
Advertisement 728x90

SQLite 3.53: Principales correcciones de errores y nuevas funciones SQL

SQLite 3.53 ya está disponible — un motor de base de datos C compacto y embebible en dominio público. La biblioteca es perfecta para integrarla en aplicaciones sin restricciones de licencias. La versión anterior, 3.51, se remonta a noviembre de 2025, y la versión 3.52 fue cancelada. El consorcio financia su desarrollo.

Esta versión se centra en la estabilidad del modo WAL, mejoras en ALTER TABLE y herramientas JSON. Optimizaciones en las consultas mejoran el rendimiento en fusiones de tablas y operaciones UNION/INTERSECT/EXCEPT.

Corrección crítica para corrupción de base de datos en WAL

Se ha corregido un error que causaba corrupción de la base de datos en modo Write-Ahead Logging. El problema se remontaba a 2010 (SQLite 3.7.0) y surgía durante condiciones de carrera: múltiples conexiones abriendo la DB simultáneamente e intentando escribir/confirmar transacciones en el mismo archivo. El fallo era raro, solo reproducible en escenarios de prueba.

Google AdInline article slot

Esta corrección es crítica para aplicaciones multihilo que usan WAL, donde el acceso concurrente es la norma. Los desarrolladores de nivel medio y senior apreciarán eliminar esta vulnerabilidad latente sin regresiones.

Mejoras en DDL: ALTER TABLE y REINDEX EXPRESSIONS

El comando ALTER TABLE ahora permite eliminar restricciones NOT NULL y CHECK. Útil para la evolución del esquema sin reconstruir completamente la tabla.

El nuevo comando REINDEX EXPRESSIONS reconstruye índices sobre expresiones (funciones sobre columnas u operaciones). Se usa para restaurar índices obsoletos tras cambios de datos.

Google AdInline article slot

Ejemplo de escenario:

  • Un índice en UPPER(column) se degrada durante actualizaciones.
  • REINDEX EXPRESSIONS(name) restaura la integridad.

Los disparadores temporales (CREATE TEMP TRIGGER) en tablas de otras bases de datos ahora pueden modificar tablas o leer datos.

Funciones JSON y mejoras en VACUUM

Se han añadido json_array_insert() y jsonb_array_insert() para insertar elementos en arrays JSON preservando orden y tipos.

Google AdInline article slot

VACUUM INTO con objetivos URL ahora soporta reserve=N para establecer el número de copias de respaldo de la base de datos.

Lista de nuevas funciones JSON:

  • json_array_insert(json, path, value): inserción por ruta.
  • jsonb_array_insert(jsonb, path, value): variante binaria para rendimiento.
  • Soporte para inserción posicional y por nombre.

Mejoras en la utilidad CLI de sqlite3

Se ha integrado la biblioteca QRF (Query Result Formatter) para salida legible de resultados de consultas.

Cambios en comandos:

  • .mode ampliado con nuevos formatos (tablas con marco por defecto).
  • Números alineados a la derecha en salida de tablas.
  • Punto y coma ; ignorado después de comandos punto.
  • Archivos .sql/.txt desde la línea de comandos se ejecutan como SQL + comandos punto.
  • .timer once — temporización solo para la siguiente consulta.
  • .progress -timeout S — interrupción por tiempo de espera.
  • .indexes aplica patrones a nombres de índices, no a tablas.

Estas funciones aceleran la depuración y análisis en la terminal.

Optimizaciones y cambios de plataforma

El planificador de consultas está optimizado para fusiones de tablas y EXCEPT/INTERSECT/UNION — ganancias de rendimiento en conjuntos de datos grandes.

La conversión de float a texto es más rápida (operaciones tipo sprintf).

Compilación WebAssembly: nuevo VFS opfs-wl usa Web Locks API para bloqueo, similar a opfs.

sqlite3_rsync: opción -p/--port para rsync en red.

Soporte para Windows RT discontinuado.

Rendimiento de float a texto mejorado mediante vectorización en rutas calientes.

Puntos clave

  • Corregida rara pero fatal condición de carrera WAL con acceso multi-conexión.
  • ALTER TABLE elimina NOT NULL/CHECK; REINDEX EXPRESS para índices basados en expresiones.
  • json_array_insert() y CLI con QRF para JSON/depuración.
  • Optimizaciones para UNION/EXCEPT y formateo de float.
  • WebAssembly: VFS opfs-wl con Web Locks.

— Editorial Team

Advertisement 728x90

Leer después