{"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\/pt\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Lan\u00e7amento do SGBD SQLite 3.42 e DuckDB 0.8.0. CG\\\/SQL com implementa\u00e7\u00e3o de procedimentos armazenados para SQLite.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Foi lan\u00e7ada a vers\u00e3o 3.42 do SQLite, um sistema gerenciador de banco de dados leve, apresentado como uma biblioteca de link. O c\u00f3digo-fonte do SQLite \u00e9 distribu\u00eddo como dom\u00ednio p\u00fablico, ou seja, pode ser utilizado sem restri\u00e7\u00f5es e gratuitamente para qualquer finalidade. O suporte financeiro aos desenvolvedores do SQLite \u00e9 fornecido por um cons\u00f3rcio especialmente criado, que inclui empresas como Adobe, Oracle, Mozilla, Bentley e Bloomberg.     <\/p>\n<p>Principais mudan\u00e7as:  <\/p>\n<ul>\n<li class=\"l\"> Para \u00edndices de texto completo FTS5, foi implementado o comando secure-delete, que realiza a limpeza completa de todos os dados residuais ap\u00f3s a exclus\u00e3o.\n<li class=\"l\"> As fun\u00e7\u00f5es de manipula\u00e7\u00e3o de dados em formato JSON agora suportam extens\u00f5es JSON5.\n<li class=\"l\"> O planejador de consultas foi aprimorado. A otimiza\u00e7\u00e3o \"count-of-view\" est\u00e1 habilitada por padr\u00e3o. O processamento de colunas n\u00e3o utilizadas em subconsultas foi exclu\u00eddo. A implementa\u00e7\u00e3o da otimiza\u00e7\u00e3o push-down foi melhorada.\n<li class=\"l\"> A interface de linha de comando agora inclui a op\u00e7\u00e3o \"--unsafe-testing\", que permite o uso de alguns comandos perigosos, como \" .testctrl \", destinados a testes. No modo seguro (\"--safe\"), o uso dos comandos \" .log on \" e \" .log off \" est\u00e1 permitido. Foi adicionador suporte para o delimitador \"--\", ap\u00f3s o qual o processamento de op\u00e7\u00f5es \u00e9 desativado. Foram adicionados os par\u00e2metros \":inf\" e \":nan\", relacionados aos valores infinito e NaN.\n<li class=\"l\"> Agora \u00e9 permitido o cruzamento de nomes de fun\u00e7\u00f5es SQL definidos no lado do aplicativo com palavras-chave CROSS, FULL, INNER, LEFT, NATURAL, OUTER e RIGHT.\n<li class=\"l\"> As capacidades do PRAGMA integrity_check foram expandidas. Foi adicionado um verificador para a especifica\u00e7\u00e3o de valores NaN em colunas que possuem a condi\u00e7\u00e3o NOT NULL. A clareza das mensagens de erro foi melhorada.\n<li class=\"l\"> Na extens\u00e3o session, foi permitido capturar mudan\u00e7as em tabelas sem ROWID.\n<li class=\"l\"> Na fun\u00e7\u00e3o para lidar com tempos e datas, foi adicionado o modificador \"subsec\" para utiliza\u00e7\u00e3o de fra\u00e7\u00f5es de segundos.\n<li class=\"l\"> A profundidade de recurs\u00e3o para arrays e objetos JSON foi reduzida de 2000 para 1000 por padr\u00e3o.      <\/ul>\n<p>Al\u00e9m disso, foi lan\u00e7ado o banco de dados DuckDB 0.8.0, uma variante do SQLite, aprimorada com recursos e otimiza\u00e7\u00f5es para execu\u00e7\u00e3o de consultas anal\u00edticas que abrangem uma parte significativa dos dados armazenados, como a agrega\u00e7\u00e3o de todo o conte\u00fado de tabelas ou a fus\u00e3o de v\u00e1rias grandes tabelas. Um dialeto SQL estendido \u00e9 fornecido, incluindo recursos adicionais para processamento de consultas muito complexas e longas, al\u00e9m de suportar tipos complexos (arrays, estruturas, uni\u00f5es), execu\u00e7\u00e3o simult\u00e2nea de v\u00e1rias consultas e execu\u00e7\u00e3o de consultas diretamente de arquivos nos formatos CSV, JSON e Parquet. H\u00e1 suporte para importa\u00e7\u00e3o de bancos de dados PostgreSQL.     <\/p>\n<p>Al\u00e9m do c\u00f3digo de shell do SQLite, o projeto utiliza um parser separado do PostgreSQL, o componente Date Math do MonetDB, sua pr\u00f3pria implementa\u00e7\u00e3o de fun\u00e7\u00f5es de janela (baseada no algoritmo Segment Tree Aggregation), um manipulador de express\u00f5es regulares baseado na biblioteca RE2, seu pr\u00f3prio otimizador de consultas, o mecanismo MVCC de controle de concorr\u00eancia (Multi-Version Concurrency Control), bem como um mecanismo de execu\u00e7\u00e3o de consultas vetorizado baseado no algoritmo Hyper-Pipelining Query Execution, que permite processar grandes conjuntos de valores em uma \u00fanica opera\u00e7\u00e3o. O c\u00f3digo do projeto \u00e9 licenciado sob a licen\u00e7a MIT.       <\/p>\n<p>Na nova vers\u00e3o do DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> Novas express\u00f5es \"PIVOT\" e \"UNPIVOT\" foram adicionadas para transformar linhas em colunas e vice-versa.\n<li class=\"l\"> O paralelismo durante a importa\u00e7\u00e3o e exporta\u00e7\u00e3o de dados foi aprimorado. A leitura de arquivos no formato CSV agora \u00e9 feita por padr\u00e3o em m\u00faltiplas threads, e a grava\u00e7\u00e3o em m\u00faltiplas threads \u00e9 suportada ao usar os formatos Parquet, CSV e JSON.\n<li class=\"l\"> Foi adicionado o operador \"**\" para a itera\u00e7\u00e3o recursiva de diret\u00f3rios ao definir caminhos de arquivos (por exemplo, FROM \"\u2018data\/glob\/crawl\/stackoverflow\/**\/*.csv\u2019; \").\n<li class=\"l\"> Adicionou-se suporte para opera\u00e7\u00f5es de jun\u00e7\u00e3o (JOIN) em dados na forma de s\u00e9ries temporais (cortes de valores de par\u00e2metros em intervalos de tempo determinados), em que um crit\u00e9rio de jun\u00e7\u00e3o das grava\u00e7\u00f5es utiliza uma correspond\u00eancia aproximada dos valores no campo de tempo (por exemplo, \u00e9 poss\u00edvel unir registros cujos tempos diferem em at\u00e9 1 minuto).\n<li class=\"l\"> Foi implementado o carregamento sob demanda de metadados do banco de dados, o que acelerou em dezenas de vezes o in\u00edcio do banco de dados.\n<li class=\"l\"> Adicionada suporte para a conex\u00e3o de fun\u00e7\u00f5es personalizadas na linguagem Python.\n<li class=\"l\"> Adicionada suporte para API ADBC (Arrow Database Connectivity) para transmiss\u00e3o de dados utilizando Apache Arrow.\n<li class=\"l\"> Implementada a liga\u00e7\u00e3o para integra\u00e7\u00e3o com c\u00f3digo na linguagem Swift.\n<li class=\"l\"> O comportamento do operador de divis\u00e3o (\"\/\") foi alterado para realizar c\u00e1lculos em ponto flutuante por padr\u00e3o, ao inv\u00e9s de opera\u00e7\u00f5es inteiras. Um novo operador \"\/\/\" foi proposto para divis\u00e3o inteira. O comportamento antigo pode ser restaurado configurando \"SET integer_division=true;\".\n<li class=\"l\"> O m\u00e9todo de contagem de registros nulos ao classificar foi alterado de \"NULLS FIRST\" para \"NULLS LAST\", ou seja, valores NULL agora ser\u00e3o exibidos no final em vez de no in\u00edcio da lista. O comportamento antigo pode ser restaurado configurando \"SET default_null_order='nulls_first';\".  <\/ul>\n<p>Adicionalmente, pode-se destacar o projeto CG\/SQL desenvolvido pela empresa Facebook, que fornece um gerador de c\u00f3digo para utiliza\u00e7\u00e3o de procedimentos armazenados com SQLite. CG\/SQL permite a cria\u00e7\u00e3o de procedimentos armazenados em um dialeto especial de T-SQL (Transact-SQL), que permite chamadas a fun\u00e7\u00f5es da biblioteca padr\u00e3o C e acesso a dados em SQLite. Os procedimentos armazenados criados s\u00e3o compilados em c\u00f3digo na linguagem C, utilizando a API C do SQLite para executar a\u00e7\u00f5es solicitadas e processar consultas complexas. Procedimentos armazenados compilados podem ser conectados a programas nas linguagens C, Java e Objective-C. O c\u00f3digo do projeto \u00e9 escrito em C e distribu\u00eddo sob a licen\u00e7a 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.3 - 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\/pt\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Lan\u00e7amento do SGBD SQLite 3.42 e DuckDB 0.8.0. CG\/SQL com implementa\u00e7\u00e3o de procedimentos armazenados para SQLite | ProHoster","description":"Publicado o lan\u00e7amento do SQLite 3.42, um SGBD leve, apresentado como uma biblioteca plug\u00e1vel. O c\u00f3digo do SQLite \u00e9 distribu\u00eddo como dom\u00ednio p\u00fablico.","canonical_url":"https:\/\/prohoster.info\/pt\/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":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}