{"id":108630,"date":"2023-05-19T12:48:16","date_gmt":"2023-05-19T10:48:16","guid":{"rendered":"https:\/\/prohoster.info\/?p=108630"},"modified":"2023-05-19T12:52:41","modified_gmt":"2023-05-19T10:52:41","slug":"vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","status":"publish","type":"post","link":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Lanzamiento de la base de datos SQLite 3.42 y DuckDB 0.8.0. CG\/SQL con implementaci\u00f3n de procedimientos almacenados para SQLite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Se ha publicado la versi\u00f3n SQLite 3.42, una base de datos ligera presentada como una biblioteca de enlace. El c\u00f3digo de SQLite se distribuye como dominio p\u00fablico, es decir, puede ser utilizado sin restricciones y de forma gratuita para cualquier prop\u00f3sito. El apoyo financiero a los desarrolladores de SQLite es proporcionado por un consorcio creado espec\u00edficamente, que incluye empresas como Adobe, Oracle, Mozilla, Bentley y Bloomberg.     <\/p>\n<p>Principales cambios:  <\/p>\n<ul>\n<li class=\"l\"> Para los \u00edndices de texto completo FTS5 se ha implementado el comando secure-delete, que realiza una limpieza completa de todos los datos residuales tras la eliminaci\u00f3n.\n<li class=\"l\"> Las funciones para procesamiento de datos en formato JSON ahora incluyen soporte para extensiones JSON5.\n<li class=\"l\"> Se ha mejorado el planificador de consultas. La optimizaci\u00f3n \u00abcount-of-view\u00bb est\u00e1 habilitada por defecto. Se excluye el procesamiento de columnas no utilizadas en subconsultas. Se ha mejorado la implementaci\u00f3n de la optimizaci\u00f3n push-down.\n<li class=\"l\"> Se ha a\u00f1adido la opci\u00f3n \u00ab--unsafe-testing\u00bb a la interfaz de l\u00ednea de comandos, que permite usar ciertos comandos peligrosos, como \u00ab.testctrl\u00bb, dise\u00f1ados para pruebas. En modo seguro (\u00ab--safe\u00bb), se permite el uso de los comandos \u00ab.log on\u00bb y \u00ab.log off\u00bb. Se ha a\u00f1adido soporte para el delimitador \u00ab--\u00bb, tras el cual se desactiva el procesamiento de las opciones. Se a\u00f1adieron los par\u00e1metros \u00ab:inf\u00bb y \u00ab:nan\u00bb, relacionados con los valores de infinito y NaN.\n<li class=\"l\"> En los nombres de las funciones SQL definidas del lado de la aplicaci\u00f3n se permite la intersecci\u00f3n con las palabras clave CROSS, FULL, INNER, LEFT, NATURAL, OUTER y RIGHT.\n<li class=\"l\"> Se han ampliado las capacidades de PRAGMA integrity_check. Se ha a\u00f1adido la verificaci\u00f3n para indicar un valor NaN en columnas con la condici\u00f3n NOT NULL. Se ha mejorado la claridad de los mensajes de error.\n<li class=\"l\"> En la extensi\u00f3n session se ha permitido la interceptaci\u00f3n de cambios en tablas sin ROWID.\n<li class=\"l\"> Se ha a\u00f1adido el modificador \u00absubsec\u00bb a la funci\u00f3n de manejo de tiempo y fechas para utilizar fracciones de segundo.\n<li class=\"l\"> La profundidad de recursi\u00f3n para arreglos y objetos JSON se ha reducido de 2000 a 1000 por defecto.      <\/ul>\n<p>Adem\u00e1s, se ha lanzado la versi\u00f3n 0.8.0 de la base de datos DuckDB, que desarrolla una variante de SQLite, ampliada con capacidades y optimizaciones para ejecutar consultas anal\u00edticas que abarcan una parte significativa de los datos almacenados, como la agregaci\u00f3n de todo el contenido de las tablas o la combinaci\u00f3n de varias tablas grandes. Se proporciona un dialecto SQL ampliado, que incluye funcionalidades adicionales para el procesamiento de consultas muy complejas y prolongadas, adem\u00e1s de soportar tipos complejos (arreglos, estructuras, uniones), la ejecuci\u00f3n simult\u00e1nea de varias consultas y la ejecuci\u00f3n de consultas directamente desde archivos en formato CSV, JSON y Parquet. Existe la posibilidad de importar desde bases de datos PostgreSQL.     <\/p>\n<p>Adem\u00e1s del c\u00f3digo de la interfaz de l\u00ednea de comandos de SQLite, el proyecto utiliza un parser separado de PostgreSQL, el componente Date Math de MonetDB, su propia implementaci\u00f3n de funciones de ventana (basado en el algoritmo de Segment Tree Aggregation), un manejador de expresiones regulares basado en la biblioteca RE2, su propio optimizador de consultas, un mecanismo MVCC de control de concurrencia de m\u00faltiples versiones (Multi-Version Concurrency Control), y un motor de ejecuci\u00f3n de consultas vectorizado basado en el algoritmo de Ejecuci\u00f3n de Consultas Hyper-Pipelining, que permite procesar grandes conjuntos de valores en una sola operaci\u00f3n. El c\u00f3digo del proyecto se distribuye bajo la licencia MIT.       <\/p>\n<p>En la nueva versi\u00f3n de DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> Se han a\u00f1adido nuevas expresiones \u00abPIVOT\u00bb y \u00abUNPIVOT\u00bb para transformar filas en columnas y viceversa.\n<li class=\"l\"> Se ha mejorado el paralelismo al importar y exportar datos. Por defecto, se implementa la lectura de archivos en formato CSV en m\u00faltiples hilos y la escritura multihilo al utilizar los formatos Parquet, CSV y JSON.\n<li class=\"l\"> Se ha a\u00f1adido el operador \u00ab**\u00bb para la iteraci\u00f3n recursiva de directorios al determinar rutas de archivos (por ejemplo, FROM \u00ab'data\/glob\/crawl\/stackoverflow\/**\/*.csv';\u00bb).\n<li class=\"l\"> Se ha a\u00f1adido soporte para operaciones de uni\u00f3n (JOIN) para datos en forma de series temporales (cortes de valores de par\u00e1metros en intervalos de tiempo definidos), donde el criterio de uni\u00f3n de registros utiliza coincidencias aproximadas en lugar de exactas en el campo temporal (por ejemplo, se pueden unir registros con tiempos que difieren no m\u00e1s de 1 minuto).\n<li class=\"l\"> Se ha implementado la carga diferida de metadatos de la base de datos, lo que ha permitido acelerar el inicio de la base de datos en decenas de veces.\n<li class=\"l\"> Se ha a\u00f1adido soporte para la conexi\u00f3n de funciones personalizadas en Python.\n<li class=\"l\"> Se ha a\u00f1adido soporte para la API ADBC (Arrow Database Connectivity) para la transferencia de datos utilizando Apache Arrow.\n<li class=\"l\"> Se ha implementado el enlace para la integraci\u00f3n con c\u00f3digo en Swift.\n<li class=\"l\"> Se ha cambiado el comportamiento del operador de divisi\u00f3n (\u00ab\/\u00bb), que ahora ejecuta c\u00e1lculos de punto flotante por defecto en lugar de operaciones enteras. Se ha propuesto un nuevo operador para la divisi\u00f3n entera: \u00ab\/\/\u00bb. El comportamiento antiguo se puede restaurar configurando \u00abSET integer_division=true;\u00bb.\n<li class=\"l\"> El m\u00e9todo de tratamiento de registros nulos al ordenar se ha cambiado de \u00abNULLS FIRST\u00bb a \u00abNULLS LAST\u00bb, es decir, los valores NULL ahora se mostrar\u00e1n al final y no al principio de la lista. El comportamiento antiguo se puede restaurar configurando \u00abSET default_null_order='nulls_first';\u00bb.  <\/ul>\n<p>Adicionalmente, se puede destacar el proyecto CG\/SQL desarrollado por Facebook, que proporciona un generador de c\u00f3digo para usar procedimientos almacenados con SQLite. CG\/SQL permite redactar procedimientos almacenados en un dialecto especial de T-SQL (Transact-SQL), que permite la llamada a funciones de la biblioteca est\u00e1ndar de C y el acceso a datos en SQLite. Los procedimientos almacenados generados se compilan en c\u00f3digo en C, que utiliza la API de C de SQLite para llevar a cabo las acciones deseadas y procesar consultas complejas. Los procedimientos almacenados compilados pueden conectarse a programas en lenguajes como C, Java y Objective-C. El c\u00f3digo del proyecto est\u00e1 escrito en C y se distribuye bajo la licencia MIT.<br \/>\n<br \/>Fuente: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=59157\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.42, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0439 \u0421\u0423\u0411\u0414, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041a\u043e\u0434 SQLite \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (public domain), \u0442.\u0435. \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0431\u0435\u0437 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439 \u0438 \u0431\u0435\u0437\u0432\u043e\u0437\u043c\u0435\u0437\u0434\u043d\u043e \u0432 \u043b\u044e\u0431\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 SQLite \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0435\u0442 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0441\u043e\u0440\u0446\u0438\u0443\u043c, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u0445\u043e\u0434\u044f\u0442 \u0442\u0430\u043a\u0438\u0435 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438, \u043a\u0430\u043a Adobe, Oracle, Mozilla, Bentley \u0438 Bloomberg. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f: \u0414\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0442\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0434\u0435\u043a\u0441\u043e\u0432 FTS5 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-108630","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.42, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0439 \u0421\u0423\u0411\u0414, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041a\u043e\u0434 SQLite \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (public domain), \u0442.\u0435.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 SQLite 3.42 \u0438 DuckDB 0.8.0. CG\/SQL \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0434\u043b\u044f SQLite | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.42, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0439 \u0421\u0423\u0411\u0414, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041a\u043e\u0434 SQLite \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (public domain), \u0442.\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-05-19T10:48:16+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-05-19T10:52:41+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Lanzamiento de la base de datos SQLite 3.42 y DuckDB 0.8.0. CG\/SQL con implementaci\u00f3n de procedimientos almacenados para SQLite | ProHoster","description":"Se ha publicado el lanzamiento de SQLite 3.42, una base de datos ligera, presentada como una biblioteca conectable. El c\u00f3digo de SQLite se distribuye como dominio p\u00fablico.","canonical_url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"es_ES","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a \u0421\u0423\u0411\u0414 SQLite 3.42 \u0438 DuckDB 0.8.0. CG\/SQL \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440 \u0434\u043b\u044f SQLite | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.42, \u043b\u0435\u0433\u043a\u043e\u0432\u0435\u0441\u043d\u043e\u0439 \u0421\u0423\u0411\u0414, \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u0432\u0438\u0434\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438. \u041a\u043e\u0434 SQLite \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0434\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 (public domain), \u0442.\u0435.","og:url":"https:\/\/prohoster.info\/es\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-05-19T10:48:16+00:00","article:modified_time":"2023-05-19T10:52:41+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}