{"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\/nl\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Release van de database SQLite 3.42 en DuckDB 0.8.0. CG\/SQL met de implementatie van opgeslagen procedures voor SQLite.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>De release van SQLite 3.42 is gepubliceerd, een lichte DBMS, gepresenteerd als een te integreren bibliotheek. De code van SQLite wordt verspreid als publiek domein, wat betekent dat deze zonder beperkingen en kosteloos voor alle doeleinden kan worden gebruikt. De financi\u00eble ondersteuning voor de ontwikkelaars van SQLite komt van een speciaal opgerichte consortium, dat bedrijven zoals Adobe, Oracle, Mozilla, Bentley en Bloomberg omvat.     <\/p>\n<p>Belangrijkste wijzigingen:  <\/p>\n<ul>\n<li class=\"l\"> Voor full-text indexen FTS5 is de secure-delete opdracht ge\u00efmplementeerd, die een volledige schoonmaak van alle resterende gegevens na verwijdering uitvoert.\n<li class=\"l\"> In de functies voor het verwerken van gegevens in JSON-formaat is ondersteuning voor JSON5-uitbreidingen ge\u00efmplementeerd.\n<li class=\"l\"> De query planner is verbeterd. Standaard is de optimalisatie 'count-of-view' ingeschakeld. De verwerking van ongebruikte kolommen in subqueries is uitgesloten. De implementatie van de push-down optimalisatie is verbeterd.\n<li class=\"l\"> De commandoregelinterface heeft de optie '--unsafe-testing' toegevoegd, waarmee enkele gevaarlijke commando's, zoals '.testctrl', kunnen worden gebruikt voor testdoeleinden. In de veilige modus ('--safe') zijn de commando's '.log on' en '.log off' toegestaan. Er is ondersteuning toegevoegd voor de scheidingsteken '--', voor argumenten na welke de verwerking van opties wordt uitgeschakeld. De parameters ':inf' en ':nan', gerelateerd aan de waarden onbepaald en NaN, zijn toegevoegd.\n<li class=\"l\"> In de namen van applicatie-gedefinieerde SQL-functies is het toegestaan om te overlappen met de sleutelwoorden CROSS, FULL, INNER, LEFT, NATURAL, OUTER en RIGHT.\n<li class=\"l\"> De mogelijkheden van PRAGMA integrity_check zijn uitgebreid. Er is een controle toegevoegd voor het opgeven van de waarde NaN in kolommen met de NOT NULL-voorwaarde. De informativiteit van foutmeldingen is verbeterd.\n<li class=\"l\"> In de session-additie is het onderscheppen van wijzigingen in tabellen zonder ROWID toegestaan.\n<li class=\"l\"> In de functie voor tijd- en datumbewerking is de modifier 'subsec' toegevoegd voor het gebruiken van fracties van seconden.\n<li class=\"l\"> De diepte van recursie voor JSON-arrays en -objecten is standaard verminderd van 2000 naar 1000.      <\/ul>\n<p>Daarnaast is versie 0.8.0 van de DuckDB-database ontwikkeld, een uitbreiding van SQLite die mogelijkheden en optimalisaties biedt voor analytische queries. Deze versie dekt een aanzienlijk deel van de opgeslagen data, bijvoorbeeld door aggregaties van alle inhoud in tabellen of door verschillende grote tabellen samen te voegen. Er is een uitgebreide dialect van SQL beschikbaar, met extra mogelijkheden voor het verwerken van zeer complexe en langdurige queries, ondersteuning voor complexe types (arrays, structuren, unions), gelijktijdige uitvoering van meerdere queries en de mogelijkheid om queries direct uit bestanden in CSV, JSON en Parquet-formaten uit te voeren. Import vanuit PostgreSQL is ook mogelijk.     <\/p>\n<p>Naast de SQLite shell-code maakt het project gebruik van een apart uitgebouwde PostgreSQL-parser, de Date Math-component van MonetDB, een eigen implementatie van vensterfuncties (gebaseerd op het Segment Tree Aggregation-algoritme), een reguliere expressiehandler op basis van de RE2-bibliotheek, een eigen query-optimizer, en het MVCC-mechanisme voor gelijktijdige taakuitvoering (Multi-Version Concurrency Control). Ook is er een vectorized query execution engine ontwikkeld op basis van het Hyper-Pipelining Query Execution-algoritme, waarmee grote waarde-sets in \u00e9\u00e9n keer kunnen worden verwerkt. De projectcode is beschikbaar onder de MIT-licentie.       <\/p>\n<p>In de nieuwe versie van DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> Nieuwe expressies 'PIVOT' en 'UNPIVOT' zijn toegevoegd voor de transformatie van rijen naar kolommen en omgekeerd.\n<li class=\"l\"> Het parallelle importeren en exporteren van data is verbeterd. Standaard wordt het lezen van CSV-bestanden in meerdere threads uitgevoerd en is er multithread writing bij het gebruik van Parquet-, CSV- en JSON-formaten.\n<li class=\"l\"> De operator '**' is toegevoegd voor het recursief doorlopen van mappen bij het bepalen van bestandsroutes (bijvoorbeeld, FROM 'data\/glob\/crawl\/stackoverflow\/**\/*.csv').\n<li class=\"l\"> Ondersteuning voor samengevoegde (JOIN) operaties op tijdreeksgegevens is toegevoegd, waarbij voor het samenvoegen van records niet exacte, maar benaderende overeenkomsten van waarden in het tijdveld worden gebruikt (bijvoorbeeld, records waarvan de tijd niet meer dan 1 minuut van elkaar verschilt, kunnen worden samengevoegd).\n<li class=\"l\"> Lazy loading van database-metadata is ge\u00efmplementeerd, wat de opstarttijd van de database aanzienlijk heeft versneld.\n<li class=\"l\"> Ondersteuning voor het verbinden van aangepaste functies in de programmeertaal Python is toegevoegd.\n<li class=\"l\"> Ondersteuning voor de ADBC API (Arrow Database Connectivity) voor gegevensoverdracht met behulp van Apache Arrow is toegevoegd.\n<li class=\"l\"> Binding voor integratie met code in de programmeertaal Swift is ge\u00efmplementeerd.\n<li class=\"l\"> Het gedrag van de deling operator ('\/') is veranderd, die nu standaard berekeningen met zwevende komma uitvoert in plaats van gehele getallen. Een nieuwe operator '\/\/' is voorgesteld voor gehele deling. Het oude gedrag kan worden hersteld met de instelling 'SET integer_division=true;'.\n<li class=\"l\"> De manier van omgaan met nulwaarden bij sorteren is gewijzigd van 'NULLS FIRST' naar 'NULLS LAST', d.w.z. NULL-waarden worden nu aan het einde van de lijst weergegeven en niet aan het begin. Het oude gedrag kan worden hersteld met de instelling 'SET default_null_order='nulls_first';'.  <\/ul>\n<p>Daarnaast kan het door Facebook ontwikkelde project CG\/SQL worden genoemd, dat een codegenerator biedt voor het gebruik van opgeslagen procedures met SQLite. CG\/SQL maakt het mogelijk om opgeslagen procedures te schrijven in een speciale dialect van T-SQL (Transact-SQL), waardoor aanroepingen van functies uit de standaard C-bibliotheek en toegang tot gegevens in SQLite mogelijk zijn. De gemaakte opgeslagen procedures worden gecompileerd naar C-code, die de SQLite C API gebruikt om opgegeven taken uit te voeren en complexe aanvragen te verwerken. Gecompileerde opgeslagen procedures kunnen worden aangesloten op programma's in C, Java en Objective-C. De projectcode is geschreven in C en is beschikbaar onder de MIT-licentie.<br \/>\n<br \/>Bron: <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\/nl\/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=\"nl_NL\" \/>\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\/nl\/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\udd47Uitgave van de DBMS SQLite 3.42 en DuckDB 0.8.0. CG\/SQL met implementatie van opgeslagen procedures voor SQLite | ProHoster","description":"De release van SQLite 3.42 is gepubliceerd, een lichtgewicht DBMS, gepresenteerd als een dynamische bibliotheek. De code van SQLite wordt verspreid als publieke domein (public domain), d.w.z.","canonical_url":"https:\/\/prohoster.info\/nl\/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":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}