{"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\/pl\/blog\/news\/vypusk-subd-sqlite-3-42-i-duckdb-0-8-0-cg-sql-s-realizacziej-hranimyh-proczedur-dlya-sqlite","title":{"rendered":"Wydanie bazy danych SQLite 3.42 oraz DuckDB 0.8.0. CG\/SQL z realizacj\u0105 procedur sk\u0142adowanych dla SQLite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Opublikowano wydanie SQLite 3.42, lekkiej bazy danych, kt\u00f3ra jest dost\u0119pna jako biblioteka do pod\u0142\u0105czenia. Kod SQLite jest dost\u0119pny w domenie publicznej, co oznacza, \u017ce mo\u017ce by\u0107 u\u017cywany bez ogranicze\u0144 i bezp\u0142atnie w dowolnym celu. Wsparcie finansowe dla programist\u00f3w SQLite zapewnia specjalnie utworzony konsorcjum, w kt\u00f3rego sk\u0142ad wchodz\u0105 firmy takie jak Adobe, Oracle, Mozilla, Bentley i Bloomberg.     <\/p>\n<p>G\u0142\u00f3wne zmiany:  <\/p>\n<ul>\n<li class=\"l\"> Dla pe\u0142notekstowych indeks\u00f3w FTS5 wprowadzono polecenie secure-delete, kt\u00f3re przeprowadza pe\u0142ne usuni\u0119cie wszelkich pozosta\u0142ych danych po usuni\u0119ciu.\n<li class=\"l\"> W funkcjach do przetwarzania danych w formacie JSON wprowadzono wsparcie dla rozszerze\u0144 JSON5.\n<li class=\"l\"> \u0423\u043b\u0443\u0447\u0448\u0435\u043d \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.  \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f   &#171;count-of-view&#187;. \u0418\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u043f\u043e\u0434\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u0445. \u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 push-down.\n<li class=\"l\"> \u0412 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043e\u043f\u0446\u0438\u044f &#171;&#8212;unsafe-testing&#187;, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u043f\u0430\u0441\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a  &#171;.testctrl&#187;, \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0412 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (&#171;&#8212;safe&#187;) \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u0430\u043d\u0434 &#171;.log on&#187; \u0438 &#171;.log off&#187;. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435\u043b\u044f &#171;&#8212;&#171;, \u0434\u043b\u044f \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0442\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043e\u043f\u0446\u0438\u0439. \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b &#171;:inf&#187; \u0438 &#171;:nan&#187;, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u0431\u0435\u0441\u043a\u043e\u043d\u0435\u0447\u043d\u043e\u0441\u0442\u044c \u0438 NaN.\n<li class=\"l\"> W nazwach definiowanych w aplikacji funkcji SQL dozwolone jest \u0142\u0105czenie z kluczowymi s\u0142owami CROSS, FULL, INNER, LEFT, NATURAL, OUTER i RIGHT.\n<li class=\"l\"> Rozszerzono mo\u017cliwo\u015bci PRAGMA integrity_check. Dodano kontrol\u0119 wskazania warto\u015bci NaN w kolumnach z warunkiem NOT NULL. Ulepszono przekazywanie komunikat\u00f3w o b\u0142\u0119dach.\n<li class=\"l\"> W dodatku session zezwolono na przechwytywanie zmian z tabel bez ROWID.\n<li class=\"l\"> \u0412 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u0438 \u0434\u0430\u0442\u0430\u043c\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 &#171;subsec&#187; \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0435\u0439 \u0441\u0435\u043a\u0443\u043d\u0434.\n<li class=\"l\"> G\u0142\u0119boko\u015b\u0107 rekurencji dla tablic i obiekt\u00f3w JSON domy\u015blnie zmniejszona z 2000 do 1000.      <\/ul>\n<p>Ponadto zaktualizowano wydanie bazy danych DuckDB 0.8.0, rozwijaj\u0105cej wariant SQLite, rozszerzonej o mo\u017cliwo\u015bci i optymalizacje do wykonywania zapyta\u0144 analitycznych, obejmuj\u0105cych znaczn\u0105 cz\u0119\u015b\u0107 danych przechowywanych, na przyk\u0142ad wykonuj\u0105cych agregacj\u0119 ca\u0142ej zawarto\u015bci tabel lub \u0142\u0105czenie kilku du\u017cych tabel. Oferowany jest rozszerzony dialekt j\u0119zyka SQL, kt\u00f3ry zawiera dodatkowe mo\u017cliwo\u015bci do obs\u0142ugi bardzo z\u0142o\u017conych i czasoch\u0142onnych zapyta\u0144, a tak\u017ce wspiera z\u0142o\u017cone typy (tablice, struktury, z\u0142\u0105czenia), jednoczesne wykonywanie wielu zapyta\u0144 oraz wykonanie zapyta\u0144 bezpo\u015brednio z plik\u00f3w w formacie CSV, JSON i Parquet. Istnieje mo\u017cliwo\u015b\u0107 importu z bazy danych PostgreSQL.     <\/p>\n<p>Opr\u00f3cz kodu pow\u0142oki z SQLite projekt wykorzystuje przeniesiony do osobnej biblioteki parser z PostgreSQL, komponent Date Math z MonetDB, w\u0142asn\u0105 implementacj\u0119 funkcji okiennych (opart\u0105 na algorytmie Segment Tree Aggregation), silnik obs\u0142ugi wyra\u017ce\u0144 regularnych oparty na bibliotece RE2, w\u0142asny optymalizator zapyta\u0144, mechanizm zarz\u0105dzania jednoczesnym wykonywaniem zada\u0144 (Multi-Version Concurrency Control), a tak\u017ce wektorowy silnik wykonania zapyta\u0144 oparty na algorytmie Hyper-Pipelining Query Execution, kt\u00f3ry umo\u017cliwia przetwarzanie du\u017cych zbior\u00f3w warto\u015bci w jednej operacji. Kod projektu jest dystrybuowany na licencji MIT.       <\/p>\n<p>W nowej wersji DuckDB:    <\/p>\n<ul>\n<li class=\"l\"> \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u043e\u0432\u044b\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f  &#171;PIVOT&#187;  \u0438 &#171;UNPIVOT&#187; \u0434\u043b\u044f \u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0441\u0442\u0440\u043e\u043a \u0432 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u0438 \u043d\u0430\u043e\u0431\u043e\u0440\u043e\u0442.\n<li class=\"l\"> Zoptymalizowano r\u00f3wnoleg\u0142o\u015b\u0107 przy imporcie i eksporcie danych. Domy\u015blnie zaimplementowano odczyt z plik\u00f3w w formacie CSV w wielu w\u0105tkach oraz wielow\u0105tkowe zapisanie przy u\u017cyciu format\u00f3w Parquet, CSV i JSON.\n<li class=\"l\"> \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#171;**&#187; \u0434\u043b\u044f \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0431\u043e\u0440\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u0440\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u043f\u0443\u0442\u0435\u0439 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, FROM &#171;&#8216;data\/glob\/crawl\/stackoverflow\/**\/*.csv&#8217;;&#187;).\n<li class=\"l\"> Dodano wsparcie dla operacji \u0142\u0105czenia (JOIN) dla danych w postaci szereg\u00f3w czasowych (wycinki warto\u015bci parametr\u00f3w w okre\u015blonych odst\u0119pach czasu), w kt\u00f3rych jako kryterium \u0142\u0105czenia rekord\u00f3w u\u017cywana jest nie dok\u0142adna, a przybli\u017cona zgodno\u015b\u0107 warto\u015bci w polu czasu (na przyk\u0142ad, mo\u017cna po\u0142\u0105czy\u0107 rekordy, kt\u00f3rych czasy r\u00f3\u017cni\u0105 si\u0119 nie wi\u0119cej ni\u017c o 1 minut\u0119).\n<li class=\"l\"> Wdro\u017cono op\u00f3\u017anione \u0142adowanie metadanych bazy danych, co umo\u017cliwi\u0142o wielokrotne przyspieszenie uruchamiania bazy danych.\n<li class=\"l\"> Dodano wsparcie dla \u0142\u0105czenia funkcji u\u017cytkownika w j\u0119zyku Python.\n<li class=\"l\"> Dodano wsparcie dla API ADBC (Arrow Database Connectivity) do przesy\u0142ania danych z wykorzystaniem Apache Arrow.\n<li class=\"l\"> Zrealizowano powi\u0105zanie do integracji z kodem w j\u0119zyku Swift.\n<li class=\"l\"> \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u0435\u043b\u0435\u043d\u0438\u044f (&#171;\/&#187;), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0441 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0435\u0439 \u0437\u0430\u043f\u044f\u0442\u043e\u0439 \u0432\u043c\u0435\u0441\u0442\u043e \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439. \u0414\u043b\u044f \u0446\u0435\u043b\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d \u043d\u043e\u0432\u044b\u0439 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 &#171;\/\/&#187;. \u0421\u0442\u0430\u0440\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 &#171;SET integer_division=true;&#187;.\n<li class=\"l\"> \u041c\u0435\u0442\u043e\u0434 \u0443\u0447\u0451\u0442\u0430 \u043d\u0443\u043b\u0435\u0432\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u043f\u0440\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0438\u0437\u043c\u0435\u043d\u0451\u043d \u0441  &#171;NULLS FIRST&#187; \u043d\u0430 &#171;NULLS LAST&#187;, \u0442.\u0435. \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f NULL \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435, \u0430 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0435 \u0441\u043f\u0438\u0441\u043a\u0430. \u0421\u0442\u0430\u0440\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439  &#171;SET default_null_order=&#8217;nulls_first&#8217;;&#187;.  <\/ul>\n<p>Dodatkowo mo\u017cna zauwa\u017cy\u0107 rozwijany przez firm\u0119 Facebook projekt CG\/SQL, dostarczaj\u0105cy generator kodu do u\u017cycia z procedurami sk\u0142adowymi w SQLite. CG\/SQL pozwala na definiowanie procedur sk\u0142adowych w specjalnym dialekcie T-SQL (Transact-SQL), kt\u00f3ry umo\u017cliwia wywo\u0142ywanie funkcji standardowej biblioteki C i dost\u0119p do danych w SQLite. Stworzone procedury sk\u0142adowe s\u0105 kompilowane do kodu w j\u0119zyku C, kt\u00f3ry korzysta z SQLite C API do wykonywania okre\u015blonych dzia\u0142a\u0144 i przetwarzania z\u0142o\u017conych zapyta\u0144. Skompilowane procedury sk\u0142adowe mog\u0105 by\u0107 \u0142\u0105czone z programami w j\u0119zykach C, Java i Objective-C. Kod projektu napisany jest w j\u0119zyku C i jest udost\u0119pniany na licencji MIT.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <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\/pl\/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=\"pl_PL\" \/>\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\/pl\/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\udd47Wydanie bazy danych SQLite 3.42 i DuckDB 0.8.0. CG\/SQL z implementacj\u0105 procedur sk\u0142adowych dla SQLite | ProHoster","description":"Opublikowano wydanie SQLite 3.42, lekkiej bazy danych zrealizowanej w formie biblioteki dynamicznej. Kod SQLite jest udost\u0119pniany jako w\u0142asno\u015b\u0107 publiczna (public domain), tzn.","canonical_url":"https:\/\/prohoster.info\/pl\/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":"pl_PL","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\/pl\/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\/pl\/wp-json\/wp\/v2\/posts\/108630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=108630"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/108630\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=108630"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=108630"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=108630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}