{"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\/da\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Udgivelse af databasesystemet SQLite 3.42 og DuckDB 0.8.0. CG\/SQL med implementation af gemte procedurer til SQLite.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>SQLite 3.42 er udgivet, en letv\u00e6gtsdatabase som er tilg\u00e6ngelig som et tilsluttet bibliotek. SQLite-koden distribueres som offentlig ejendom, dvs. den kan anvendes uden begr\u00e6nsninger og uden beregning til enhver form for brug. Den \u00f8konomiske st\u00f8tte til udviklerne af SQLite leveres af et s\u00e6rligt oprettet konsortium, som inkluderer virksomheder som Adobe, Oracle, Mozilla, Bentley og Bloomberg.     <\/p>\n<p>Vigtige \u00e6ndringer:  <\/p>\n<ul>\n<li class=\"l\"> For fuldtekstindeksering har FTS5 implementeret kommandoen secure-delete, der renser alle resterende data efter sletning.\n<li class=\"l\"> I funktionerne til behandling af data i JSON-format er der implementeret st\u00f8tte til JSON5-udvidelser.\n<li class=\"l\"> Planl\u00e6gningsmodtageren er forbedret. Optimering af &#171;count-of-view&#187; er som standard aktiveret. Behandling af ubrugte kolonner i underforesp\u00f8rgsler er udelukket. Implementeringen af push-down optimering er forbedret.\n<li class=\"l\"> Der er tilf\u00f8jet en mulighed &#171;&#8212;unsafe-testing&#187; til kommandolinjegr\u00e6nsefladen, som g\u00f8r det muligt at bruge visse farlige kommandoer som &#171;.testctrl&#187;, der er beregnet til testform\u00e5l. I sikker tilstand (&#171;&#8212;safe&#187;) er brugen af kommandoerne &#171;.log on&#187; og &#171;.log off&#187; tilladt. Der er tilf\u00f8jet underst\u00f8ttelse af separatoren &#171;&#8212;&#171;, s\u00e5 efterf\u00f8lgende argumenter ikke behandler indstillinger. Parametrene &#171;:inf&#187; og &#171;:nan&#187; er tilf\u00f8jet, med relation til v\u00e6rdierne uendelighed og NaN.\n<li class=\"l\"> I SQL-funktioner defineret p\u00e5 applikationssiden er krydsning med n\u00f8gleordene CROSS, FULL, INNER, LEFT, NATURAL, OUTER og RIGHT tilladt.\n<li class=\"l\"> Mulighederne for PRAGMA integrity_check er blevet udvidet. Der er tilf\u00f8jet kontrol for angivelse af NaN-v\u00e6rdi i kolonner med betingelsen NOT NULL. Fejlmeddelelserne er blevet mere informative.\n<li class=\"l\"> I supplementet session tillades opfangning af \u00e6ndringer fra tabeller uden ROWID.\n<li class=\"l\"> I funktionen til behandling af tid og datoer er der tilf\u00f8jet en modifier &#171;subsec&#187; til brug af br\u00f8kdele.\n<li class=\"l\"> Standard rekursionsdybde for JSON-arrays og -objekter er reduceret fra 2000 til 1000.      <\/ul>\n<p>Desuden er version 0.8.0 af DuckDB, som udvikler en variant af SQLite, blevet frigivet med forbedringer til udf\u00f8relse af analytiske foresp\u00f8rgsler, der d\u00e6kker en betydelig del af de gemte data, for eksempel ved at aggregere indholdet af hele tabeller eller sammenflette flere store tabeller. Der tilbydes en udvidet SQL-dialekt med ekstra muligheder for behandling af meget komplekse og langvarige foresp\u00f8rgsler, samt underst\u00f8ttelse af komplekse typer (arrays, strukturer, unioner), samtidig udf\u00f8relse af flere foresp\u00f8rgsler og udf\u00f8relse af foresp\u00f8rgsler direkte fra filer i CSV-, JSON- og Parquet-format. Der er mulighed for import fra PostgreSQL-databaser.     <\/p>\n<p>Udover shell-koden fra SQLite anvender projektet en parser fra PostgreSQL, der er adskilt i et separat bibliotek, Date Math-komponenten fra MonetDB, sin egen implementering af vinduesfunktioner (baseret p\u00e5 Segment Tree Aggregation-algoritmen), en regelm\u00e6ssige udtrykshandler baseret p\u00e5 RE2-biblioteket, egen foresp\u00f8rgselsoptimerer, MVCC-mekanisme til styring af samtidige opgaver (Multi-Version Concurrency Control), samt en vektoriseret foresp\u00f8rgselsmotor baseret p\u00e5 Hyper-Pipelining Query Execution-algoritmen, der g\u00f8r det muligt at behandle store datas\u00e6t i \u00e9n operation. Projektkoden distribueres under MIT-licensen.       <\/p>\n<p>I den nye version af DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> Nye udtryk &#171;PIVOT&#187; og &#171;UNPIVOT&#187; er tilf\u00f8jet for at transformere r\u00e6kker til kolonner og omvendt.\n<li class=\"l\"> Paralleliseringen ved import og eksport af data er forbedret. Som standard implementeres l\u00e6sning fra CSV-filer i flere tr\u00e5de og multitr\u00e5det skrivning ved brug af Parquet-, CSV- og JSON-formater.\n<li class=\"l\"> Operatoren &#171;**&#187; er tilf\u00f8jet for rekursiv gennemgang af kataloger ved bestemmelse af filstier (f.eks. FROM &#171;&#8216;data\/glob\/crawl\/stackoverflow\/**\/*.csv&#8217;;&#187;).\n<li class=\"l\"> Underst\u00f8ttelse af sammenfletningsoperationer (JOIN) for data i form af tidsserier (udsnit af parameterv\u00e6rdier over bestemte tidsintervaller), hvor n\u00e6rv\u00e6r af postv\u00e6rdier i tidsfeltet anvendes som sammenfletningskriterium (for eksempel kan poster, hvis tid adskiller sig med h\u00f8jst 1 minut, sammenl\u00e6gges), er blevet tilf\u00f8jet.\n<li class=\"l\"> Forsinket indl\u00e6sning af database metadata er blevet implementeret, hvilket har gjort det muligt at accelerere opstarten af databasen med mange gange.\n<li class=\"l\"> St\u00f8tte til tilslutning af brugerdefinerede funktioner i Python er blevet tilf\u00f8jet.\n<li class=\"l\"> St\u00f8tte til API ADBC (Arrow Database Connectivity) til overf\u00f8rsel af data ved hj\u00e6lp af Apache Arrow er blevet tilf\u00f8jet.\n<li class=\"l\"> Binding til integration med Swift-kode er blevet implementeret.\n<li class=\"l\"> Adf\u00e6rd ved divisionsoperatoren (&#171;\/&#187;) er \u00e6ndret, s\u00e5 den nu som standard udf\u00f8rer flydende beregninger i stedet for heltalsoperationer. En ny operator &#171;\/\/&#187; er foresl\u00e5et til heltalsdivision. Den gamle adf\u00e6rd kan genskabes ved at indstille &#171;SET integer_division=true;&#187;.\n<li class=\"l\"> Metoden til h\u00e5ndtering af NULL-v\u00e6rdier ved sortering er \u00e6ndret fra &#171;NULLS FIRST&#187; til &#171;NULLS LAST&#187;, dvs. NULL-v\u00e6rdier vil nu blive vist til sidst i listen, ikke f\u00f8rst. Den gamle adf\u00e6rd kan genskabes ved at indstille &#171;SET default_null_order=&#8217;nulls_first&#8217;;&#187;.  <\/ul>\n<p>Derudover kan projektet CG\/SQL, der udvikles af Facebook, n\u00e6vnes; det tilbyder en kodegenerator til brug af gemte procedurer med SQLite. CG\/SQL g\u00f8r det muligt at skrive gemte procedurer p\u00e5 en specialiseret T-SQL (Transact-SQL) dialekt, der tillader kald til standard C-biblioteksfunktioner og aflevering af data i SQLite. De oprettede gemte procedurer kompileres til C-kode, der bruger SQLite C API til at udf\u00f8re definerede handlinger og h\u00e5ndtere komplekse foresp\u00f8rgsler. De kompilerede gemte procedurer kan tilsluttes programmer skrevet i C, Java og Objective-C. Projektkoden er skrevet i C og distribueres under MIT-licensen.<br \/>\n<br \/>Kilde: <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\/da\/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=\"da_DK\" \/>\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\/da\/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\udd47Udgivelsen af DBMS SQLite 3.42 og DuckDB 0.8.0. CG\/SQL med implementering af gemte procedurer til SQLite | ProHoster","description":"Udgivelsen af SQLite 3.42, en letv\u00e6gts DBMS pr\u00e6senteret som et plug-in bibliotek, er offentliggjort. Koden til SQLite distribueres som offentligt dom\u00e6ne (public domain), dvs.","canonical_url":"https:\/\/prohoster.info\/da\/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":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}