{"id":38636,"date":"2019-10-31T22:24:58","date_gmt":"2019-10-31T19:24:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/reliz-subd-postgresql-12\/"},"modified":"2019-10-31T22:24:58","modified_gmt":"2019-10-31T19:24:58","slug":"reliz-subd-postgresql-12","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-subd-postgresql-12","title":{"rendered":"Wydanie systemu DBMS PostgreSQL 12","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Po roku prac rozwojowych <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/about\/news\/1976\/\">opublikowane<\/a><\/noindex> Nowa stabilna ga\u0142\u0105\u017a bazy danych PostgreSQL 12. Aktualizacje dla nowej ga\u0142\u0119zi <noindex><a rel=\"nofollow\" href=\"http:\/\/www.postgresql.org\/support\/versioning\/\">b\u0119d\u0105 wydawane<\/a><\/noindex> W ci\u0105gu pi\u0119ciu lat do listopada 2024 roku. <\/p>\n<p>Podstawowe <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/static\/release-12.html\">nowo\u015bci<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Dodano wsparcie &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/ddl-generated-columns.html\">generowanych kolumn<\/a><\/noindex>&#171;, kt\u00f3rych warto\u015b\u0107 jest obliczana na podstawie wyra\u017cenia obejmuj\u0105cego warto\u015bci innych kolumn w tej samej tabeli (analogicznie do widok\u00f3w, ale dla poszczeg\u00f3lnych kolumn). Generowane kolumny mog\u0105 mie\u0107 dwa typy &#8212; przechowywane i wirtualne. W pierwszym przypadku warto\u015b\u0107 jest obliczana w momencie dodawania lub zmiany danych, a w drugim &#8212; przy ka\u017cdym odczycie na podstawie aktualnego stanu innych kolumn. Obecnie w PostgreSQL obs\u0142ugiwane s\u0105 tylko przechowywane kolumny generowane;\n<li class=\"l\"> Dodano mo\u017cliwo\u015b\u0107 wykonywania zapyta\u0144 o dane z dokument\u00f3w JSON za pomoc\u0105 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/functions-json.html#FUNCTIONS-SQLJSON-PATH\">Wyra\u017ce\u0144 \u015bcie\u017cek<\/a><\/noindex>, przypominaj\u0105cych <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/XPath\">XPath<\/a><\/noindex> i okre\u015blonych w standardzie SQL\/JSON. Aby poprawi\u0107 wydajno\u015b\u0107 przetwarzania takich wyra\u017ce\u0144 dla dokument\u00f3w przechowywanych w formacie JSONB, stosowane s\u0105 istniej\u0105ce mechanizmy indeksowania;\n<li class=\"l\"> Domy\u015blnie w\u0142\u0105czono zastosowanie kompilatora JIT (Just-in-Time) opartego na technologiach LLVM w celu przyspieszenia wykonania niekt\u00f3rych wyra\u017ce\u0144 podczas przetwarzania zapyta\u0144 SQL. Na przyk\u0142ad, JIT jest stosowany w celu przyspieszenia wykonania wyra\u017ce\u0144 w blokach &#171;WHERE&#187;, na listach wynikowych (target lists), w wyra\u017ceniach agregacyjnych oraz w niekt\u00f3rych operacjach wewn\u0119trznych;\n<li class=\"l\"> Znacz\u0105co zwi\u0119kszona wydajno\u015b\u0107 indeksowania. Indeksy B-drzewo zosta\u0142y zoptymalizowane do pracy w warunkach cz\u0119stych zmian indeks\u00f3w &#8212; w testach TPC-C odnotowano og\u00f3lny wzrost wydajno\u015bci i zmniejszenie zu\u017cycia przestrzeni dyskowej \u015brednio o 40%. Zredukowano koszty zwi\u0105zane z generowaniem logu zapisu w przysz\u0142o\u015bci (WAL) dla typ\u00f3w indeks\u00f3w GiST, GIN i SP-GiST. Dla GiST dodano mo\u017cliwo\u015b\u0107 tworzenia indeks\u00f3w-wrap (poprzez wyra\u017cenie INCLUDE), obejmuj\u0105cych dodatkowe kolumny. W operacji <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-createstatistics.html\">CREATE STATISTICS<\/a><\/noindex> zapewniono obs\u0142ug\u0119 statystyki dotycz\u0105cej najbardziej typowych warto\u015bci (MCV), co umo\u017cliwia generowanie bardziej optymalnych plan\u00f3w zapyta\u0144 przy u\u017cyciu nier\u00f3wnomiernie roz\u0142o\u017conych kolumn;\n<li class=\"l\"> Realizacja podzia\u0142u (partycyjowania) zosta\u0142a zoptymalizowana dla zapyta\u0144 obejmuj\u0105cych tabele z tysi\u0105cami sekcji, ale ograniczaj\u0105cych si\u0119 do wyboru ograniczonego podzbioru danych. Zwi\u0119kszona wydajno\u015b\u0107 dodawania danych do podzielonych tabel za pomoc\u0105 operacji INSERT i COPY, a tak\u017ce zapewniono mo\u017cliwo\u015b\u0107 dodawania nowych sekcji poprzez &#171;ALTER TABLE ATTACH PARTITION&#187; bez blokowania wykonania zapyta\u0144;\n<li class=\"l\"> Dodano wsparcie dla automatycznego rozwijania og\u00f3lnych wyra\u017ce\u0144 tabelarycznych (<noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/queries-with.html\">Common Table Expression<\/a><\/noindex>, CTE), kt\u00f3re pozwalaj\u0105 na u\u017cycie tymczasowych nazwanych zbior\u00f3w wynikowych okre\u015blanych za pomoc\u0105 operatora WITH. Inline rozwijanie pozwala zwi\u0119kszy\u0107 wydajno\u015b\u0107 wi\u0119kszo\u015bci zapyta\u0144, ale na razie stosowane jest tylko dla nie-rekurencyjnych CTE;\n<li class=\"l\"> Dodano wsparcie dla <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/collation.html#COLLATION-NONDETERMINISTIC\">niedeterministycznych<\/a><\/noindex> w\u0142a\u015bciwo\u015bci lokalizacji &#171;Collation&#187;, umo\u017cliwiaj\u0105cego okre\u015blenie regu\u0142 sortowania i metod por\u00f3wnywania z uwzgl\u0119dnieniem znaczenia symboli (na przyk\u0142ad, przy sortowaniu warto\u015bci liczbowych uwzgl\u0119dnia si\u0119 obecno\u015b\u0107 minusa i kropki przed liczb\u0105 oraz r\u00f3\u017cne sposoby zapisu, a podczas por\u00f3wnania nie bierze si\u0119 pod uwag\u0119 wielko\u015bci liter i obecno\u015bci znaku akcentu);\n<li class=\"l\"> Dodano wsparcie dla wielosk\u0142adnikowej autoryzacji klienta, gdzie w pliku pg_hba.conf mo\u017cna \u0142\u0105czy\u0107 autoryzacj\u0119 na podstawie certyfikatu SSL (clientcert=verify-full) z dodatkow\u0105 metod\u0105 autoryzacji, tak\u0105 jak scram-sha-256;\n<li class=\"l\"> Dodano wsparcie dla szyfrowania kana\u0142u komunikacyjnego przy autoryzacji przez <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/gssapi-auth.html\">GSSAPI<\/a><\/noindex>, zar\u00f3wno po stronie klienta, jak i po stronie serwera;\n<li class=\"l\"> Dodano wsparcie dla definiowania serwer\u00f3w LDAP na podstawie rekord\u00f3w &#171;DNS SRV&#187;, je\u015bli PostgreSQL jest zbudowany z OpenLDAP;\n<li class=\"l\"> Dodano operacj\u0119 &#171;<noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/sql-reindex.html#SQL-REINDEX-CONCURRENTLY\">REINDEX CONCURRENTLY<\/a><\/noindex>\u00bb do przebudowy indeks\u00f3w bez blokowania operacji zapisu do indeksu;\n<li class=\"l\"> Dodano komend\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/app-pgchecksums.html\">pg_checksums<\/a><\/noindex>, kt\u00f3ra pozwala na w\u0142\u0105czenie i wy\u0142\u0105czenie walidacji sum kontrolnych stron danych dla istniej\u0105cej bazy danych (wcze\u015bniej operacja ta by\u0142a wspierana tylko podczas inicjalizacji bazy danych);\n<li class=\"l\"> Zapewniono wy\u015bwietlanie wska\u017anika post\u0119pu wykonywania operacji CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL oraz pg_checksums;\n<li class=\"l\"> Dodano polecenie \u00ab<noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/tableam.html\">CREATE ACCESS METHOD<\/a><\/noindex>\u00bb do \u0142\u0105czenia obs\u0142ugiwaczy nowych metod przechowywania tabel, zoptymalizowanych pod k\u0105tem r\u00f3\u017cnych specyficznych zada\u0144. Obecnie jedyn\u0105 wbudowan\u0105 metod\u0105 dost\u0119pu do tabel jest \u00abheap\u00bb;\n<li class=\"l\"> Plik konfiguracyjny recovery.conf zosta\u0142 po\u0142\u0105czony z postgresql.conf. Jako wska\u017aniki przej\u015bcia w stan odbudowy po awarii teraz <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/12\/runtime-config-wal.html#RUNTIME-CONFIG-WAL-ARCHIVE-RECOVERY\">nale\u017cy<\/a><\/noindex> nale\u017cy u\u017cywa\u0107 plik\u00f3w recovery.signal i standby.signal.\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>\u0179r\u00f3d\u0142o: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51604\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u0421\u0423\u0411\u0414 PostgreSQL 12. \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 \u043f\u044f\u0442\u0438 \u043b\u0435\u0442 \u0434\u043e \u043d\u043e\u044f\u0431\u0440\u044f 2024 \u0433\u043e\u0434\u0430. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043d\u043e\u0432\u0448\u0435\u0441\u0442\u0432\u0430: \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 &#171;\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432&#171;, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432 \u0432 \u0442\u043e\u0439 \u0436\u0435 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 (\u0430\u043d\u0430\u043b\u043e\u0433 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0439, \u043d\u043e \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432). \u0413\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0441\u0442\u043e\u043b\u0431\u0446\u044b \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0434\u0432\u0443\u0445 [&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-38636","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u0421\u0423\u0411\u0414 PostgreSQL 12.\" \/>\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\/reliz-subd-postgresql-12\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.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\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 PostgreSQL 12 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u0421\u0423\u0411\u0414 PostgreSQL 12.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-subd-postgresql-12\" \/>\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=\"2019-10-31T19:24:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:24:58+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 PostgreSQL 12 | ProHoster","description":"Po roku prac opublikowano now\u0105 stabiln\u0105 wersj\u0119 bazy danych PostgreSQL 12.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-subd-postgresql-12","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\u0420\u0435\u043b\u0438\u0437 \u0421\u0423\u0411\u0414 PostgreSQL 12 | ProHoster","og:description":"\u041f\u043e\u0441\u043b\u0435 \u0433\u043e\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u0430 \u043d\u043e\u0432\u0430\u044f \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0442\u043a\u0430 \u0421\u0423\u0411\u0414 PostgreSQL 12.","og:url":"https:\/\/prohoster.info\/pl\/blog\/news\/reliz-subd-postgresql-12","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":"2019-10-31T19:24:58+00:00","article:modified_time":"2019-10-31T19:24:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"38636","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":"2026-01-23 22:52:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 01:06:23","updated":"2026-01-23 22:52:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/38636","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=38636"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/38636\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=38636"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=38636"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=38636"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}