{"id":105659,"date":"2022-11-21T15:36:52","date_gmt":"2022-11-21T13:36:52","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/vypusk-subd-sqlite-3-40"},"modified":"2022-11-21T15:36:52","modified_gmt":"2022-11-21T13:36:52","slug":"vypusk-subd-sqlite-3-40","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-subd-sqlite-3-40","title":{"rendered":"Vyd\u00e1n\u00ed datab\u00e1ze SQLite 3.40","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Byla vyd\u00e1na verze SQLite 3.40, lehk\u00e9ho datab\u00e1zov\u00e9ho syst\u00e9mu jako p\u0159ipojiteln\u00e9 knihovny. K\u00f3d SQLite je \u0161\u00ed\u0159en jako ve\u0159ejn\u00e9 vlastnictv\u00ed (public domain), tedy m\u016f\u017ee b\u00fdt pou\u017e\u00edv\u00e1n bez omezen\u00ed a bezplatn\u011b pro jak\u00e9koli \u00fa\u010dely. Finan\u010dn\u00ed podporu v\u00fdvoj\u00e1\u0159\u016fm SQLite zaji\u0161\u0165uje speci\u00e1ln\u011b zalo\u017een\u00fd konzorcium, do kter\u00e9ho pat\u0159\u00ed spole\u010dnosti jako Adobe, Oracle, Mozilla, Bentley a Bloomberg.     <\/p>\n<p>Hlavn\u00ed zm\u011bny:  <\/p>\n<ul>\n<li class=\"l\"> Byla implementov\u00e1na experiment\u00e1ln\u00ed mo\u017enost kompilace SQLite do mezik\u00f3du WebAssembly, kter\u00fd je schopen b\u011b\u017eet v webov\u00e9m prohl\u00ed\u017ee\u010di a je vhodn\u00fd pro uskute\u010d\u0148ov\u00e1n\u00ed pr\u00e1ce s datab\u00e1zemi z webov\u00fdch aplikac\u00ed v jazyce JavaScript. Webov\u00fdm v\u00fdvoj\u00e1\u0159\u016fm je k dispozici vysoce\u00farovn\u00ed objektov\u011b orientovan\u00e9 rozhran\u00ed pro pr\u00e1ci s daty ve stylu sql.js nebo Node.js, obal nad n\u00edzko\u00farov\u0148ov\u00fdm C API a API na z\u00e1klad\u011b mechanismu Web Worker, kter\u00fd umo\u017e\u0148uje vytv\u00e1\u0159et asynchronn\u00ed zpracovatele, vykon\u00e1van\u00e9 v samostatn\u00fdch vl\u00e1knech. Data, kter\u00e1 webov\u00e9 aplikace ukl\u00e1daj\u00ed v WASM verzi SQLite, mohou b\u00fdt uchov\u00e1v\u00e1na na stran\u011b klienta pomoc\u00ed OPFS (Origin-Private FileSystem) nebo API window.localStorage.\n<li class=\"l\"> Bylo p\u0159id\u00e1no roz\u0161\u00ed\u0159en\u00ed recovery, ur\u010den\u00e9 k obnoven\u00ed dat z po\u0161kozen\u00fdch soubor\u016f s datab\u00e1z\u00ed. V p\u0159\u00edkazov\u00e9m rozhran\u00ed se pro obnoven\u00ed pou\u017e\u00edv\u00e1 p\u0159\u00edkaz &#171;.recover&#187;.\n<li class=\"l\"> Bylo vylep\u0161eno fungov\u00e1n\u00ed pl\u00e1nova\u010de dotaz\u016f. Byla odstran\u011bna omezen\u00ed p\u0159i pou\u017e\u00edv\u00e1n\u00ed index\u016f s tabulkami, kter\u00e9 maj\u00ed v\u00edce ne\u017e 63 sloupc\u016f (d\u0159\u00edve p\u0159i operac\u00edch se sloupci, jejich\u017e po\u0159adov\u00e9 \u010d\u00edslo p\u0159esahovalo 63, se indexace neuplat\u0148ovala). Byla zlep\u0161ena indexace hodnot pou\u017e\u00edvan\u00fdch ve v\u00fdrazech. Bylo zastaveno na\u010d\u00edt\u00e1n\u00ed velk\u00fdch \u0159et\u011bzc\u016f a blob\u016f z disku p\u0159i zpracov\u00e1n\u00ed oper\u00e1tor\u016f NOT NULL a IS NULL. Byla vylou\u010dena materializace pohled\u016f, pro kter\u00e9 se pln\u00e9 skenov\u00e1n\u00ed prov\u00e1d\u00ed pouze jednou.\n<li class=\"l\"> V k\u00f3dov\u00e9 z\u00e1kladn\u011b byl m\u00edsto typu &#171;char *&#187; pro reprezentaci n\u00e1zv\u016f soubor\u016f zaveden samostatn\u00fd typ sqlite3_filename.\n<li class=\"l\"> Byla p\u0159id\u00e1na vnit\u0159n\u00ed funkce sqlite3_value_encoding().\n<li class=\"l\"> Byl p\u0159id\u00e1n re\u017eim SQLITE_DBCONFIG_DEFENSIVE, kter\u00fd zakazuje zm\u011bnu verze sch\u00e9ma ulo\u017een\u00ed dat.\n<li class=\"l\"> Byly p\u0159id\u00e1ny dal\u0161\u00ed kontroly do implementace parametru &#171;PRAGMA integrity_check&#187;. Nap\u0159\u00edklad tabulky bez ozna\u010den\u00ed STRICT by nem\u011bly obsahovat \u010d\u00edseln\u00e9 hodnoty ve sloupc\u00edch typu TEXT a \u0159et\u011bzcov\u00e9 hodnoty s \u010d\u00edsly ve sloupc\u00edch typu NUMERIC. Tak\u00e9 byla p\u0159id\u00e1na kontrola spr\u00e1vnosti po\u0159ad\u00ed \u0159\u00e1dk\u016f v tabulk\u00e1ch s ozna\u010den\u00edm &#171;WITHOUT ROWID&#187;.\n<li class=\"l\"> V p\u0159\u00edkazu &#171;VACUUM INTO&#187; byly zohledn\u011bny nastaven\u00ed &#171;PRAGMA synchronous&#187;.\n<li class=\"l\"> Byla p\u0159id\u00e1na konfigura\u010dn\u00ed mo\u017enost SQLITE_MAX_ALLOCATION_SIZE, kter\u00e1 umo\u017e\u0148uje omezit velikost blok\u016f p\u0159i alokaci pam\u011bti.\n<li class=\"l\"> Vestav\u011bn\u00fd algoritmus generov\u00e1n\u00ed pseudon\u00e1hodn\u00fdch \u010d\u00edsel v SQLite byl p\u0159eveden z pou\u017eit\u00ed proudov\u00e9ho \u0161ifrov\u00e1n\u00ed RC4 na Chacha20.\n<li class=\"l\"> Bylo povoleno pou\u017e\u00edv\u00e1n\u00ed index\u016f se stejn\u00fdmi n\u00e1zvy v r\u016fzn\u00fdch sch\u00e9matech dat.\n<li class=\"l\"> Byly provedeny optimalizace v\u00fdkonu, kter\u00e9 umo\u017enily sn\u00ed\u017eit z\u00e1t\u011b\u017e CPU o p\u0159ibli\u017en\u011b 1 % p\u0159i b\u011b\u017en\u00e9 \u010dinnosti.      <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58162\">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.40, \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: \u0420\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 [&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-105659","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.40, \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\/cs\/blog\/news\/vypusk-subd-sqlite-3-40\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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.40 | 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.40, \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\/cs\/blog\/news\/vypusk-subd-sqlite-3-40\" \/>\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=\"2022-11-21T13:36:52+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-11-21T13:36:52+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\udd47Uvoln\u011bn\u00ed DBMS SQLite 3.40 | ProHoster","description":"Byla vyd\u00e1na verze SQLite 3.40, lehk\u00e9ho DBMS, kter\u00fd je k dispozici jako p\u0159ipojiteln\u00e1 knihovna. K\u00f3d SQLite je distribuov\u00e1n jako ve\u0159ejn\u00e1 dom\u00e9na (public domain), tj.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/vypusk-subd-sqlite-3-40","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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.40 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.40, \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\/cs\/blog\/news\/vypusk-subd-sqlite-3-40","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":"2022-11-21T13:36:52+00:00","article:modified_time":"2022-11-21T13:36:52+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\/cs\/wp-json\/wp\/v2\/posts\/105659","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=105659"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/105659\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=105659"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=105659"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=105659"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}