{"id":55593,"date":"2020-01-24T00:00:00","date_gmt":"2020-01-23T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov"},"modified":"2020-02-18T14:03:43","modified_gmt":"2020-02-18T11:03:43","slug":"reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","title":{"rendered":"Rilascio del DBMS SQLite 3.31 con supporto per colonne generate","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/changes.html\">Pubblicato<\/a><\/noindex> il rilascio <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/\">SQLite 3.31.0<\/a><\/noindex>, un DBMS leggero, fornito come libreria collegabile. Il codice di SQLite \u00e8 distribuito come dominio pubblico, cio\u00e8 pu\u00f2 essere utilizzato senza restrizioni e gratuitamente per qualsiasi scopo. Il supporto finanziario per gli sviluppatori di SQLite \u00e8 fornito da un consorzio appositamente creato, che comprende aziende come Adobe, Oracle, Mozilla, Bentley e Bloomberg. <\/p>\n<p>Principali <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/releaselog\/3_31_0.html\">cambiamenti<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> \u00c8 stata aggiunta la supporto per <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/gencol.html\">colonne generate<\/a><\/noindex> (colonne calcolate), che consentono di definire una colonna al momento della creazione della tabella, il cui valore viene calcolato automaticamente in base al contenuto di un'altra colonna. Le colonne generate possono essere sia virtuali (create al volo ad ogni accesso), sia memorizzate nel DB (conservate ad ogni aggiornamento delle colonne correlate). Il contenuto delle colonne generate \u00e8 accessibile solo in modalit\u00e0 di sola lettura (le modifiche sono effettuate solo tramite la modifica del valore in un'altra colonna utilizzata nel calcolo). Ad esempio:\n<p>   CREATE TABLE t1(<br \/>\n      a INTEGER PRIMARY KEY,<br \/>\n      b INT,<br \/>\n      c TEXT,<br \/>\n      d INT GENERATED ALWAYS AS (a*abs(b)) VIRTUAL,<br \/>\n      e TEXT GENERATED ALWAYS AS (substr(c,b,b+1)) STORED<br \/>\n   );<\/p>\n<li class=\"l\"> Aggiunti PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_trusted_schema\">trusted_schema<\/a><\/noindex>, impostazione <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema\">SQLITE_DBCONFIG_TRUSTED_SCHEMA<\/a><\/noindex> e l'opzione di assemblaggio &#171;-DSQLITE_TRUSTED_SCHEMA&#187;, che consente di gestire l'attivazione della protezione contro <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52084\">attacchi<\/a><\/noindex> modifiche alla schema dati nel DB. Con la protezione attiva, l'uso delle funzioni SQL (non contrassegnate come SQLITE_INNOCUOUS) in trigger, viste, espressioni CHECK e DEFAULT, indici e colonne generate \u00e8 limitato. \u00c8 inoltre disattivato l'uso di tabelle virtuali in trigger e viste, se la tabella virtuale non \u00e8 esplicitamente dichiarata con il flag SQLITE_VTAB_INNOCUOUS.\n<li class=\"l\"> Implementata la possibilit\u00e0 di assegnare a determinate funzioni SQL applicative le propriet\u00e0  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqliteinnocuous\">SQLITE_INNOCUOUS<\/a><\/noindex> (funzioni innocue che non dipendono da parametri esterni e non possono essere utilizzate per compiere azioni malevole) e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqlitedirectonly\">SQLITE_DIRECTONLY<\/a><\/noindex> (solo chiamata diretta nelle query SQL, senza possibilit\u00e0 di applicarle in trigger, viste e schemi di dati);\n<li class=\"l\"> Modulo aggiunto <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/src\/file\/ext\/misc\/uuid.c\">uuid<\/a><\/noindex> con implementazione di funzioni per la gestione di UUID (RFC-4122);\n<li class=\"l\"> Aggiunto PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_hard_heap_limit\">hard_heap_limit<\/a><\/noindex> e funzione  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/hard_heap_limit64.html\">sqlite3_hard_heap_limit64()<\/a><\/noindex> per gestire la dimensione massima dell'heap;\n<li class=\"l\"> Nel PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_function_list\">function_list<\/a><\/noindex> aggiunto l'output del tipo, delle propriet\u00e0 e del numero di argomenti per ogni funzione;\n<li class=\"l\"> Nella tabella virtuale DBSTAT  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/dbstat.html#dbstatagg\">\u00e8 stata aggiunta<\/a><\/noindex> modalit\u00e0 di aggregazione dei dati;\n<li class=\"l\"> In sqlite3_open_v2() implementata l'opzione SQLITE_OPEN_NOFOLLOW, che consente di vietare l'apertura di link simbolici;\n<li class=\"l\"> Per l'argomento <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/json1.html#jsonpath\">PATH<\/a><\/noindex>, passato alle funzioni JSON, \u00e8 stata aggiunta la supporto per la notazione degli array &#171;#-N&#187;;\n<li class=\"l\"> Nel sistema di allocazione della memoria <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/malloc.html#lookaside\">lookaside<\/a><\/noindex> \u00e8 stata realizzata la supporto per due pool di memoria separati, ciascuno dei quali pu\u00f2 essere utilizzato per allocare blocchi di dimensioni diverse (la suddivisione consente di ampliare l'applicazione del sistema lookaside, riducendo nel contempo la dimensione del buffer allocato per ogni connessione da 120 a 48 KB);\n<li class=\"l\"> Interrotta la supporto PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_legacy_file_format\">legacy_file_format<\/a><\/noindex>, che era incompatibile con VACUUM, colonne generate e indici decrecenti (il supporto per il formato obsoleto pu\u00f2 essere ripristinato tramite il flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT in sqlite3_db_config()).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52238\">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.31.0, \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\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 [&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-55593","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.31.0, \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.\" \/>\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\/it\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\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\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 SQLite 3.31 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 | 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.31.0, \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.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov\" \/>\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=\"2020-01-23T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:43+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\udd47Release del database SQLite 3.31 con supporto per colonne generate | ProHoster","description":"Pubblicata la release SQLite 3.31.0, un database leggero, progettato in.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 SQLite 3.31 \u0441 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 | ProHoster","og:description":"\u041e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u0440\u0435\u043b\u0438\u0437 SQLite 3.31.0, \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.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","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":"2020-01-23T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55593","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:41:37","updated":"2022-09-28 02:47:18","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=55593"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55593\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=55593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=55593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=55593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}