{"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\/fr\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","title":{"rendered":"Lancement de la base de donn\u00e9es SQLite 3.31 avec prise en charge des colonnes g\u00e9n\u00e9r\u00e9es","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/changes.html\">Publi\u00e9<\/a><\/noindex> la sortie <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/\">SQLite 3.31.0<\/a><\/noindex>, une base de donn\u00e9es l\u00e9g\u00e8re sous forme de biblioth\u00e8que int\u00e9grable. Le code SQLite est distribu\u00e9 dans le domaine public, c'est-\u00e0-dire qu'il peut \u00eatre utilis\u00e9 sans restrictions et gratuitement \u00e0 des fins diverses. Le soutien financier des d\u00e9veloppeurs de SQLite est assur\u00e9 par un consortium sp\u00e9cialement cr\u00e9\u00e9, comprenant des entreprises telles qu'Adobe, Oracle, Mozilla, Bentley et Bloomberg. <\/p>\n<p>Principales <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/releaselog\/3_31_0.html\">modifications<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Ajout du support de <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/gencol.html\">colonnes g\u00e9n\u00e9r\u00e9es<\/a><\/noindex> (colonnes calcul\u00e9es), permettant de d\u00e9finir lors de la cr\u00e9ation d'une table une colonne dont la valeur est automatiquement calcul\u00e9e en fonction du contenu d'une autre colonne. Les colonnes g\u00e9n\u00e9r\u00e9es peuvent \u00eatre \u00e0 la fois virtuelles (form\u00e9es \u00e0 la vol\u00e9e \u00e0 chaque acc\u00e8s) et stock\u00e9es dans la base de donn\u00e9es (conserv\u00e9es \u00e0 chaque mise \u00e0 jour des colonnes associ\u00e9es). Le contenu des colonnes g\u00e9n\u00e9r\u00e9es est accessible uniquement en mode lecture (les modifications s'effectuent uniquement en modifiant la valeur d'une autre colonne impliqu\u00e9e dans le calcul). Par exemple :\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\"> Ajout\u00e9es PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_trusted_schema\">trusted_schema<\/a><\/noindex>, configuration <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_dbconfig_defensive.html#sqlitedbconfigtrustedschema\">SQLITE_DBCONFIG_TRUSTED_SCHEMA<\/a><\/noindex> et une option d'assemblage &#171;-DSQLITE_TRUSTED_SCHEMA&#187;, permettant de g\u00e9rer l'activation de la protection contre <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52084\">les attaques<\/a><\/noindex> via la modification du sch\u00e9ma de donn\u00e9es dans la base de donn\u00e9es. Avec la protection active, l'utilisation de fonctions SQL (non marqu\u00e9es comme SQLITE_INNOCUOUS) est limit\u00e9e dans les d\u00e9clencheurs, les vues, les expressions CHECK et DEFAULT, les index et les colonnes g\u00e9n\u00e9r\u00e9es. L'utilisation de tables virtuelles est \u00e9galement d\u00e9sactiv\u00e9e dans les d\u00e9clencheurs et les vues, sauf si la table virtuelle est explicitement d\u00e9clar\u00e9e avec le drapeau SQLITE_VTAB_INNOCUOUS.\n<li class=\"l\"> Mise en \u0153uvre de la possibilit\u00e9 d'attribuer certaines propri\u00e9t\u00e9s aux fonctions SQL dans les applications  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqliteinnocuous\">SQLITE_INNOCUOUS<\/a><\/noindex> (fonctions inoffensives qui ne d\u00e9pendent pas des param\u00e8tres externes et ne peuvent pas \u00eatre utilis\u00e9es pour effectuer des actions malveillantes) et <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/c_deterministic.html#sqlitedirectonly\">SQLITE_DIRECTONLY<\/a><\/noindex> (appel direct uniquement dans les requ\u00eates SQL, sans possibilit\u00e9 d'application dans les d\u00e9clencheurs, vues et structures de sch\u00e9ma de donn\u00e9es);\n<li class=\"l\"> Ajout d'un module <noindex><a rel=\"nofollow\" href=\"https:\/\/sqlite.org\/src\/file\/ext\/misc\/uuid.c\">uuid<\/a><\/noindex> avec des fonctions pour le traitement de UUID (RFC-4122);\n<li class=\"l\"> Ajout\u00e9e PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_hard_heap_limit\">hard_heap_limit<\/a><\/noindex> et la fonction  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/c3ref\/hard_heap_limit64.html\">sqlite3_hard_heap_limit64()<\/a><\/noindex> pour g\u00e9rer la taille maximale du tas;\n<li class=\"l\"> Dans la PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_function_list\">function_list<\/a><\/noindex> ajout de la sortie du type, des propri\u00e9t\u00e9s et du nombre d'arguments de chaque fonction;\n<li class=\"l\"> Dans la table virtuelle DBSTAT  <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/dbstat.html#dbstatagg\">ajout\u00e9<\/a><\/noindex> mode d'agr\u00e9gation des donn\u00e9es;\n<li class=\"l\"> sqlite3_open_v2() inclut l'option SQLITE_OPEN_NOFOLLOW, qui permet d'interdire l'ouverture de liens symboliques ;\n<li class=\"l\"> Pour l'argument <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/json1.html#jsonpath\">PATH<\/a><\/noindex>, transmis dans les fonctions JSON, un support pour la notation des tableaux &#171;#-N&#187; a \u00e9t\u00e9 ajout\u00e9;\n<li class=\"l\"> Dans le syst\u00e8me de distribution de m\u00e9moire <noindex><a rel=\"nofollow\" href=\"http:\/\/sqlite.org\/malloc.html#lookaside\">lookaside<\/a><\/noindex> le support de deux pools de m\u00e9moire distincts a \u00e9t\u00e9 mis en \u0153uvre, chacun pouvant \u00eatre utilis\u00e9 pour allouer des blocs de tailles diff\u00e9rentes (cette s\u00e9paration permet d'\u00e9tendre l'application du syst\u00e8me lookaside tout en r\u00e9duisant la taille du buffer allou\u00e9 par connexion, passant de 120 \u00e0 48 Ko) ;\n<li class=\"l\"> Le support de PRAGMA <noindex><a rel=\"nofollow\" href=\"https:\/\/www.sqlite.org\/pragma.html#pragma_legacy_file_format\">legacy_file_format<\/a><\/noindex>, qui \u00e9tait incompatible avec VACUUM, les colonnes g\u00e9n\u00e9r\u00e9es et les index d\u00e9croissants (le support du format h\u00e9rit\u00e9 peut \u00eatre restaur\u00e9 via le drapeau SQLITE_DBCONFIG_LEGACY_FILE_FORMAT dans sqlite3_db_config()).\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source : <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.2 - 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\/fr\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\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\/fr\/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\udd47La version de la base de donn\u00e9es SQLite 3.31 avec prise en charge des colonnes g\u00e9n\u00e9r\u00e9es | ProHoster","description":"La version SQLite 3.31.0 a \u00e9t\u00e9 publi\u00e9e, une base de donn\u00e9es l\u00e9g\u00e8re format\u00e9e en.","canonical_url":"https:\/\/prohoster.info\/fr\/blog\/news\/reliz-subd-sqlite-3-31-s-podderzhkoj-generiruemyh-stolbtsov","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"fr_FR","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\/fr\/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\/fr\/wp-json\/wp\/v2\/posts\/55593","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/comments?post=55593"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/posts\/55593\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/media?parent=55593"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/categories?post=55593"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/fr\/wp-json\/wp\/v2\/tags?post=55593"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}