QLite

Se ha publicado el lanzamiento de SQLite 3.35 y en esta nueva liberación de este gestor de base de datos se destacan las adiciones de funciones matemáticas, aso como también la compatibilidad con la expresión ALTER TABLE DROP COLUMN para eliminar columnas de una tabla, mejoras en las operaciones y más.

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.

Principales novedades de SQLite 3.35

Tal y como se mencionó al inicio, en esta nueva versión se agregaron funciones matemáticas integradas (log2(), cos(), tg(), exp(), ln(), pow(), etc.) que se pueden usar en SQL. Para habilitar las funciones integradas, se requiere un ensamblado con la opción «-DSQLITE_ENABLE_MATH_FUNCTIONS».

La expresión «ALTER TABLE DROP COLUMN» ahora es compatible para eliminar columnas de una tabla y borrar datos almacenados previamente en esta columna.

Se ha ampliado la implementación de la operación UPSERT (agregar o modificar), que permite utilizar expresiones como «INSERT ON CONFLICT DO NOTHING/UPDATE» para ignorar un error o realizar una actualización en lugar de insertar si es imposible agregue datos a través de «INSERT» (por ejemplo, si ya existe un registro, se puede realizar ACTUALIZAR en lugar de INSERTAR).

En la nueva versión, se permite especificar varios bloques «EN CONFLICTO«, que serán procesados ​​en orden. En el último bloque «ON CONFLICT», se permite no especificar el parámetro de definición de conflicto para usar «DO UPDATE».

Las operaciones DELETE, INSERT y UPDATE admiten la expresión RETURNING, que se puede utilizar para mostrar el contenido de un registro eliminado, insertado o modificado. Por ejemplo, «insertar en … ID que regresa» devolverá el identificador de fila agregado, y «update … set price=price*1.10 returning price» devolverá el valor del precio actualizado.

Para las expresiones de tabla generalizadas (Common Table Expression, CTE), que permite el uso de conjuntos de resultados con nombre temporal, utilizando WITH pidió al operador, aprobó la elección de los modos «MATERIALIZED» y «NOT MATERIALIZED».

  1. «MATERIALIZED» significa almacenar en caché la consulta especificada en la vista en una tabla física separada con la posterior obtención de datos de esta tabla.
  2. Y con «NOT MATERIALIZED», las consultas repetidas se realizarán cada vez que se acceda a la vista. Inicialmente, SQLite tenía el valor predeterminado «NO MATERIALIZADO», pero ahora se cambió a «MATERIALIZADO» para los CTE utilizados más de una vez.

De los demás cambios que se destacan de esta nueva versión:

  • Reducción del consumo de memoria al realizar operaciones VACUUM para bases de datos que incluyen valores muy grandes con tipos TEXT o BLOB.
  • Se ha trabajado para aumentar el rendimiento del optimizador y el planificador de consultas.
  • Se agregaron optimizaciones al usar las funciones min y max con la expresión «IN».
  • Se ha acelerado la ejecución de la instrucción EXISTS.
  • Se implementa la expansión de las subconsultas de las expresiones UNION ALL utilizadas en JOIN.
  • Índice utilizado para expresiones IS NOT NULL.
  • Se proporcionó la conversión de «x IS NULL» y «x IS NOT NULL» a FALSE o TRUE para columnas con el indicador «NOT NULL».
  • La verificación de claves externas en ACTUALIZAR se omite si la operación no cambia las columnas asociadas con la clave externa.
  • Se permite mover partes de la cláusula WHERE a subconsultas que contengan funciones de ventana, si estas partes se limitan a trabajar con constantes y copias de expresiones de cláusulas «PARTITION BY» utilizadas en funciones de ventana.

Cambios en la interfaz de línea de comandos:

  • Se agregó el comando «.filectrl data_version».
  • Los comandos «.once» y «.output» agregaron soporte para pasar la salida a un controlador llamado usando canalizaciones sin nombre («|»).
  • El comando «.stats» agregó los argumentos «stmt» y «vmstep» para mostrar estadísticas sobre expresiones y contadores de máquinas virtuales.

Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión de SQLite, puedes consultar los detalles dirigiéndote al siguiente enlace.

 

Fuente: ubunlog

¿Quién está en línea?

Hay 17038 invitados y ningún miembro en línea