{"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\/it\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Pubblicazione del DBMS SQLite 3.42 e DuckDB 0.8.0. CG\\\/SQL con implementazione delle stored procedure per SQLite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>\u00c8 stato pubblicato il rilascio di SQLite 3.42, un DBMS leggero, fornito come libreria collegabile. Il codice di SQLite \u00e8 distribuito come dominio pubblico, cio\u00e8 pu\u00f2 essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori di SQLite \u00e8 fornito da un consorzio appositamente costituito, che include aziende come Adobe, Oracle, Mozilla, Bentley e Bloomberg.     <\/p>\n<p>Variazioni principali:  <\/p>\n<ul>\n<li class=\"l\"> Per gli indici full-text FTS5 \u00e8 stata implementata il comando secure-delete, che esegue una pulizia completa di tutti i dati residui dopo la cancellazione.\n<li class=\"l\"> Nelle funzioni per la gestione dei dati in formato JSON \u00e8 stata implementata la supporto per le estensioni JSON5.\n<li class=\"l\"> Migliorato il pianificatore delle query. L'ottimizzazione \u00abcount-of-view\u00bb \u00e8 abilitata per impostazione predefinita. \u00c8 stata esclusa l'elaborazione delle colonne non utilizzate nelle sottoquery. \u00c8 stata migliorata l'implementazione dell'ottimizzazione push-down.\n<li class=\"l\"> Nell'interfaccia della riga di comando \u00e8 stata aggiunta l'opzione \u00ab\u2014unsafe-testing\u00bb, che consente di utilizzare alcuni comandi pericolosi, come \u00ab.testctrl\u00bb, destinati a essere utilizzati durante i test. In modalit\u00e0 sicura (\u00ab\u2014safe\u00bb) \u00e8 consentito utilizzare i comandi \u00ab.log on\u00bb e \u00ab.log off\u00bb. \u00c8 stato aggiunto il supporto per il separatore \u00ab\u2014\u00bb, per gli argomenti dopo il quale l'elaborazione delle opzioni viene disabilitata. Aggiunti i parametri \u00ab:inf\u00bb e \u00ab:nan\u00bb, relativi ai valori infinito e NaN.\n<li class=\"l\"> Nei nomi delle funzioni SQL definite a livello applicativo \u00e8 consentito l'incrocio con le parole chiave CROSS, FULL, INNER, LEFT, NATURAL, OUTER e RIGHT.\n<li class=\"l\"> Le funzionalit\u00e0 di PRAGMA integrity_check sono state ampliate. \u00c8 stata aggiunta la verifica della specifica del valore NaN nelle colonne con la condizione NOT NULL. \u00c8 stata migliorata l'informativit\u00e0 dei messaggi di errore.\n<li class=\"l\"> Nell'estensione session \u00e8 stato consentito di intercettare le modifiche dalle tabelle senza ROWID.\n<li class=\"l\"> Nella funzione per lavorare con il tempo e le date \u00e8 stato aggiunto il modificatore \u00absubsec\u00bb per utilizzare le frazioni di secondo.\n<li class=\"l\"> La profondit\u00e0 di ricorsione per gli array e gli oggetti JSON \u00e8 stata ridotta di default da 2000 a 1000.      <\/ul>\n<p>Inoltre, \u00e8 stata rilasciata la versione 0.8.0 del DBMS DuckDB, un'estensione di SQLite, potenziata con funzionalit\u00e0 e ottimizzazioni per eseguire query analitiche su una parte significativa dei dati memorizzati, ad esempio per aggregare l'intero contenuto delle tabelle o per unire pi\u00f9 grandi tabelle. Viene fornito un dialetto esteso di SQL, che include funzionalit\u00e0 aggiuntive per gestire query molto complesse e prolungate, supportando anche tipi complessi (array, strutture, unioni), l'esecuzione simultanea di pi\u00f9 query e l'esecuzione di query direttamente da file in formato CSV, JSON e Parquet. \u00c8 possibile importare da DBMS PostgreSQL.     <\/p>\n<p>Oltre al codice della shell di SQLite, il progetto utilizza un parser di PostgreSQL, separato in una libreria distinta, un componente di Date Math di MonetDB, una propria implementazione delle funzioni di finestra (basata sull'algoritmo Segment Tree Aggregation), un gestore di espressioni regolari basato sulla libreria RE2, un ottimizzatore di query proprietary, un meccanismo MVCC per la gestione della concorrenza (Controllo della Concorrenza Multi-Versione), e un motore di esecuzione delle query vettorializzato basato sull'algoritmo Hyper-Pipelining Query Execution, che consente di elaborare grandi set di valori in un'unica operazione. Il codice del progetto \u00e8 distribuito con la licenza MIT.       <\/p>\n<p>Nella nuova versione di DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> Aggiunti nuovi espressioni \u00abPIVOT\u00bb e \u00abUNPIVOT\u00bb per trasformare righe in colonne e viceversa.\n<li class=\"l\"> Migliorato il parallelismo durante l'importazione e l'esportazione dei dati. Per impostazione predefinita, \u00e8 implementata la lettura dei file in formato CSV in pi\u00f9 thread e la scrittura multithread per l'uso dei formati Parquet, CSV e JSON.\n<li class=\"l\"> Aggiunto l'operatore \u00ab**\u00bb per l'iterazione ricorsiva delle directory durante la definizione dei percorsi dei file (ad esempio, FROM \u00ab'data\/glob\/crawl\/stackoverflow\/**\/*.csv';\u00bb).\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per le operazioni di fusione (JOIN) per i dati sotto forma di serie temporali (fette di valori di parametri a intervalli di tempo specificati), nei quali il criterio di fusione dei record utilizza una corrispondenza non precisa, ma approssimativa dei valori nel campo tempo (ad esempio, \u00e8 possibile unire i record il cui tempo differisce di non pi\u00f9 di 1 minuto).\n<li class=\"l\"> \u00c8 stata implementata il caricamento ritardato dei metadati del DB, che ha consentito di accelerare il lancio del DBMS di decine di volte.\n<li class=\"l\"> \u00c8 stata aggiunta la supporto per il collegamento di funzioni personalizzate in Python.\n<li class=\"l\"> \u00c8 stato aggiunto il supporto per l'API ADBC (Arrow Database Connectivity) per la trasmissione dei dati utilizzando Apache Arrow.\n<li class=\"l\"> \u00c8 stata implementata una modalit\u00e0 di integrazione con il codice scritto in Swift.\n<li class=\"l\"> Modificato il comportamento dell'operatore di divisione (\u00ab\/\u00bb), che ora esegue di default calcoli in virgola mobile anzich\u00e9 operazioni intere. \u00c8 stato proposto un nuovo operatore per la divisione intera: \u00ab\/\/\u00bb. Il comportamento precedente pu\u00f2 essere ripristinato impostando \u00abSET integer_division=true;\u00bb.\n<li class=\"l\"> Il metodo di gestione delle righe nulle durante l'ordinamento \u00e8 stato modificato da \u00abNULLS FIRST\u00bb a \u00abNULLS LAST\u00bb, quindi i valori NULL verranno visualizzati alla fine, anzich\u00e9 all'inizio dell'elenco. Il comportamento precedente pu\u00f2 essere ripristinato impostando \u00abSET default_null_order='nulls_first';\u00bb.  <\/ul>\n<p>Inoltre, si segnala il progetto CG\/SQL sviluppato da Facebook, che fornisce un generatore di codice per l'uso di procedure memorizzate con SQLite. CG\/SQL consente di definire procedure memorizzate in un dialetto speciale di T-SQL (Transact-SQL), che consente di chiamare funzioni della libreria standard C e di accedere ai dati in SQLite. Le procedure memorizzate create vengono compilate in codice C, utilizzando l'API C di SQLite per eseguire operazioni e gestire query complesse. Le procedure memorizzate compilate possono essere collegate a programmi scritti in C, Java e Objective-C. Il codice del progetto \u00e8 scritto in C ed \u00e8 distribuito con licenza MIT.<br \/>\n<br \/>Fonte: <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.1.1 - 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\/it\/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.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\/it\/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\udd47Rilascio del DBMS SQLite 3.42 e DuckDB 0.8.0. CG\/SQL con implementazione di procedure memorizzate per SQLite | ProHoster","description":"\u00c8 stata pubblicata la versione SQLite 3.42, un DBMS leggero, disponibile come libreria collegabile. Il codice SQLite \u00e8 distribuito come dominio pubblico (public domain), cio\u00e8.","canonical_url":"https:\/\/prohoster.info\/it\/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":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}