{"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\/pt\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","title":{"rendered":"Lan\u00e7amento do SGBD SQLite 3.31 com suporte a colunas geradas","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/changes.html\">Publicado<\/a><\/noindex> lan\u00e7amento <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/\">SQLite 3.31.0<\/a><\/noindex>, um banco de dados leve, apresentado como uma biblioteca plug\u00e1vel. O c\u00f3digo do SQLite \u00e9 distribu\u00eddo como dom\u00ednio p\u00fablico, ou seja, pode ser utilizado sem restri\u00e7\u00f5es e gratuitamente para qualquer finalidade. O suporte financeiro para os desenvolvedores do SQLite \u00e9 fornecido por um cons\u00f3rcio criado especialmente, que inclui empresas como Adobe, Oracle, Mozilla, Bentley e Bloomberg. <\/p>\n<p>Principais <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/releaselog\/3_31_0.html\">mudan\u00e7as<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Suporte adicionado <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/gencol.html\">colunas geradas<\/a><\/noindex> (colunas calculadas), permitindo, ao criar uma tabela, definir uma coluna cujo valor \u00e9 automaticamente calculado com base no conte\u00fado de outra coluna. As colunas geradas podem ser virtuais (formadas em tempo real a cada chamada) ou armazenadas no banco de dados (salvas a cada atualiza\u00e7\u00e3o de colunas relacionadas). O conte\u00fado das colunas geradas \u00e9 acess\u00edvel apenas em modo de leitura (a modifica\u00e7\u00e3o \u00e9 feita apenas atrav\u00e9s da mudan\u00e7a do valor em outra coluna envolvida no c\u00e1lculo). Por exemplo:\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\"> Adicionadas PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_trusted_schema\">trusted_schema<\/a><\/noindex>, configura\u00e7\u00e3o <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema\">SQLITE_DBCONFIG_TRUSTED_SCHEMA<\/a><\/noindex> e a op\u00e7\u00e3o de montagem &#171;-DSQLITE_TRUSTED_SCHEMA&#187;, permitindo gerenciar a ativa\u00e7\u00e3o da prote\u00e7\u00e3o contra <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52084\">ataques<\/a><\/noindex> por meio da modifica\u00e7\u00e3o do esquema de dados no banco de dados. Com a prote\u00e7\u00e3o ativada, o uso de fun\u00e7\u00f5es SQL (n\u00e3o marcadas como SQLITE_INNOCUOUS) em gatilhos, vis\u00f5es, express\u00f5es CHECK e DEFAULT, \u00edndices e colunas geradas \u00e9 restringido. Tamb\u00e9m \u00e9 desativado o uso de tabelas virtuais em gatilhos e vis\u00f5es, a menos que a tabela virtual seja explicitamente declarada com a flag SQLITE_VTAB_INNOCUOUS.\n<li class=\"l\"> Implementada a possibilidade de atribuir certas propriedades \u00e0s fun\u00e7\u00f5es SQL em aplicativos  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqliteinnocuous\">SQLITE_INNOCUOUS<\/a><\/noindex> (fun\u00e7\u00f5es inofensivas que n\u00e3o dependem de par\u00e2metros externos e n\u00e3o podem ser utilizadas para a\u00e7\u00f5es maliciosas) e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqlitedirectonly\">SQLITE_DIRECTONLY<\/a><\/noindex> (somente cham\u00e1vel diretamente em consultas SQL, sem possibilidade de aplica\u00e7\u00e3o em gatilhos, vis\u00f5es e esquemas de estrutura de dados);\n<li class=\"l\"> M\u00f3dulo adicionado <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/src\/file\/ext\/misc\/uuid.c\">uuid<\/a><\/noindex> com a implementa\u00e7\u00e3o de fun\u00e7\u00f5es para manipula\u00e7\u00e3o de UUID (RFC-4122);\n<li class=\"l\"> Adicionada PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_hard_heap_limit\">hard_heap_limit<\/a><\/noindex> e a fun\u00e7\u00e3o  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/hard_heap_limit64.html\">sqlite3_hard_heap_limit64()<\/a><\/noindex> para gerenciar o tamanho m\u00e1ximo da heap;\n<li class=\"l\"> Na PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_function_list\">function_list<\/a><\/noindex> adicionado a sa\u00edda do tipo, propriedades e n\u00famero de argumentos de cada fun\u00e7\u00e3o;\n<li class=\"l\"> Na tabela virtual DBSTAT  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/dbstat.html#dbstatagg\">o sinalizador -k para integra\u00e7\u00e3o com<\/a><\/noindex> modo de agrega\u00e7\u00e3o de dados;\n<li class=\"l\"> Na sqlite3_open_v2() foi implementada a op\u00e7\u00e3o SQLITE_OPEN_NOFOLLOW, que pro\u00edbe a abertura de links simb\u00f3licos;\n<li class=\"l\"> Para o argumento <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/json1.html#jsonpath\">caminhos<\/a><\/noindex>, passada nas fun\u00e7\u00f5es JSON, o suporte \u00e0 nota\u00e7\u00e3o de arrays &#171;#-N&#187; foi adicionado;\n<li class=\"l\"> No sistema de aloca\u00e7\u00e3o de mem\u00f3ria <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/malloc.html#lookaside\">lookaside<\/a><\/noindex> Foi implementado o suporte a dois pools de mem\u00f3ria separados, cada um dos quais pode ser usado para alocar blocos de tamanhos diferentes (a segmenta\u00e7\u00e3o permite ampliar a aplica\u00e7\u00e3o do sistema lookaside, reduzindo ao mesmo tempo o tamanho do buffer alocado para cada conex\u00e3o de 120 para 48 KB);\n<li class=\"l\"> Suporte para PRAGMA encerrado <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_legacy_file_format\">legacy_file_format<\/a><\/noindex>, que era incompat\u00edvel com VACUUM, colunas geradas e \u00edndices decrescentes (o suporte ao formato legado pode ser restaurado atrav\u00e9s da flag SQLITE_DBCONFIG_LEGACY_FILE_FORMAT em 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.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.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\/pt\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47 Lan\u00e7amento do SGBD SQLite 3.31 com suporte a colunas geradas | ProHoster","description":"Lan\u00e7ado o SQLite 3.31.0, um SGBD leve, apresentado em.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/55593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=55593"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/55593\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=55593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=55593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=55593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}