E.3. ÐÑпÑÑк 18.1 #
ÐаÑа вÑпÑÑка: 2025-11-13
Ð ÑÑÐ¾Ñ Ð²ÑпÑÑк воÑли ÑазлиÑнÑе иÑпÑавлениÑ, внеÑÑннÑе поÑле веÑÑии 18.0. Ðа инÑоÑмаÑией о нововведениÑÑ Ð²ÐµÑÑии 18 обÑаÑиÑеÑÑ Ðº РазделÑ E.4.
E.3.1. ÐигÑаÑÐ¸Ñ Ð½Ð° веÑÑÐ¸Ñ 18.1 #
ÐÑли иÑполÑзÑеÑÑÑ Ð²ÐµÑÑÐ¸Ñ 18.X, вÑгÑÑзка/воÑÑÑановление Ð±Ð°Ð·Ñ Ð½Ðµ ÑÑебÑеÑÑÑ.
E.3.2. ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ #
ÐÑовеÑка пÑав
CREATEÐ´Ð»Ñ ÑÑ ÐµÐ¼Ñ Ð¿Ñи вÑполнении командÑCREATE STATISTICS(ÐелÑе Феннема-Ðио) §РанÑÑе из-за оÑÑÑÑÑÑÐ²Ð¸Ñ Ñакой пÑовеÑки владелÑÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð¼Ð¾Ð³Ð»Ð¸ ÑоздаваÑÑ Ð¾Ð±ÑекÑÑ ÑÑаÑиÑÑики в лÑбой ÑÑ ÐµÐ¼Ðµ, ÑÑо могло пÑиводиÑÑ Ðº неожиданнÑм конÑликÑам Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸.
ÐÑÐ¾ÐµÐºÑ PostgreSQL благодаÑÐ¸Ñ ÐелÑа Феннема-Ðио за ÑообÑение об ÑÑой пÑоблеме. (CVE-2025-12817)
ÐÑедоÑвÑаÑение ÑелоÑиÑленного пеÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð² libpq пÑи вÑÑиÑлении ÑÑебÑемого обÑÑма памÑÑи (Ðжейкоб Чемпион) §
ÐÑи вÑÑиÑлении обÑÑма памÑÑи, коÑоÑÑй Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑделиÑÑ, некоÑоÑÑе ÑÑнкÑии libpq не ÑÑиÑÑвали вÑе ÑонкоÑÑи. ÐÑли на Ð²Ñ Ð¾Ð´ пеÑедавалÑÑ Ð·Ð½Ð°ÑиÑелÑнÑй обÑÑм даннÑÑ , могло возникнÑÑÑ ÑелоÑиÑленное пеÑеполнение. Ð ÑезÑлÑÑаÑе вÑделÑлÑÑ Ð½ÐµÐ´Ð¾ÑÑаÑоÑнÑй обÑÑм, и запиÑÑ Ð²ÑполнÑлаÑÑ Ð·Ð° пÑеделами бÑÑеÑа.
ÐÑÐ¾ÐµÐºÑ PostgreSQL благодаÑÐ¸Ñ ÐлекÑÐµÑ Ð¡Ð¾Ð»Ð¾Ð²ÑÑва из Positive Technologies за ÑообÑение об ÑÑой пÑоблеме. (CVE-2025-12818)
ÐÑедоÑвÑаÑение оÑибок «unrecognized node type» (неÑаÑпознаннÑй Ñип Ñзла), возникавÑÐ¸Ñ Ð¿Ñи налиÑии пÑедложениÑ
DEFAULTÑ Ð²ÑÑажениемCOLLATEв ÑÑнкÑии SQL/JSON, напÑимеÑJSON_VALUE(ЦзÑÐ½Ñ Ð¥Ð¸) § §ÐедопÑÑение некоÑÑекÑнÑÑ Ð¾Ð¿ÑимизаÑий пÑедложений
HAVINGбез пеÑеменнÑÑ Ð¿Ñи пÑименении набоÑов гÑÑппиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (РиÑаÑд ÐÑо) § §Ðзбегание паÑаллелизма в пÑавÑÑ Ð½ÐµÐ¿Ð¾Ð»Ð½ÑÑ ÑоединениÑÑ Ð¿Ð¾ Ñ ÐµÑÑ (РиÑаÑд ÐÑо) §
ÐаÑаллелизм не обеÑпеÑивал надÑжноÑÑÑ, поÑколÑÐºÑ Ð¿Ñи обновлении обÑей Ñ ÐµÑ-ÑаблиÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°Ð»Ð¾ ÑÑловие гонки.
УÑÑÑанение возможноÑÑи Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ð° Ð½Ð¾Ð»Ñ Ð¿Ñи Ñоздании ÑпоÑÑдоÑеннÑÑ Ð¿Ð»Ð°Ð½Ð¾Ð² Append (РиÑаÑд ÐÑо) §
ÐÑа возможноÑÑÑ Ð¼Ð¾Ð³Ð»Ð° пÑивеÑÑи к некоÑÑекÑÐ½Ð¾Ð¼Ñ Ð²ÑбоÑÑ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ вÑгодного пÑÑи или к ÑÐ±Ð¾Ñ Ð¿ÑовеÑоÑного ÑÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð² оÑладоÑнÑÑ ÑбоÑÐºÐ°Ñ .
УÑÑÑанение ÑÐ±Ð¾Ñ Ð¿Ð»Ð°Ð½Ð¸ÑовÑика пÑи иÑполÑзовании Ñипов индекÑов, коÑоÑÑе поддеÑживаÑÑ ÑпоÑÑдоÑеннÑй доÑÑÑп, но не поддеÑживаÑÑ ÑканиÑование ÑолÑко индекÑа (ÐакÑим Ð¡Ñ ÑманÑ) §
Ð ÑезÑлÑÑаÑе ÑÑого ÑÐ±Ð¾Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ°Ð»Ð¸ оÑибки Ñипа «no data returned for index-only scan» (Ð½ÐµÑ Ð´Ð°Ð½Ð½ÑÑ Ð´Ð»Ñ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко индекÑа). ÐÑоблема не возникала Ñо вÑÑÑоеннÑми Ñипами индекÑов, но она коÑнÑлаÑÑ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑаÑÑиÑений.
Удаление оÑибоÑного пÑовеÑоÑного ÑÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¿Ñи оÑиÑÑке индекÑов btree (ÐиÑÐµÑ Ðейган) §
ÐÑедÑпÑеждение возможнÑÑ Ñбоев из-за Ð½ÐµÑ Ð²Ð°Ñки памÑÑи или «invalid memory alloc request size» (недопÑÑÑимÑй запÑоÑеннÑй ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð°Ð¼ÑÑи) пÑи паÑаллелÑном поÑÑÑоении индекÑов GIN (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа) §
ÐÑедоÑÑавление Ñнимка Ð´Ð»Ñ Ð²ÑÑажений индекÑов в Ñ Ð¾Ð´Ðµ авÑомаÑиÑеÑкого ÑаÑÑÑÑа Ñводки Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов BRIN, еÑли ÑÑо Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ (ÐлÑваÑо ÐÑÑеÑа) § §
РанÑÑе авÑомаÑиÑеÑкий ÑаÑÑÑÑ Ñводки Ð´Ð»Ñ ÑÐ°ÐºÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑов завеÑÑалÑÑ Ð¾Ñибкой и оÑÑавлÑл поÑле ÑÐµÐ±Ñ ÐºÐ¾ÑÑежи-меÑÑозаполниÑели, ÑÑо Ñо вÑеменем пÑиводило к ÑаздÑÐ²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа.
УÑÑÑанение ÑгÑÐ¾Ð·Ñ ÑелоÑиÑленного пеÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñи ÑканиÑовании индекÑов BRIN, еÑли колиÑеÑÑво ÑÑÑÐ°Ð½Ð¸Ñ Ð² ÑаблиÑе пÑиближаеÑÑÑ Ðº 232 (СÑнил С) §
ÐÑа оÑибка могла пÑивеÑÑи к беÑконеÑÐ½Ð¾Ð¼Ñ ÑÐ¸ÐºÐ»Ñ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½ÐµÐ½ÑжнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ ÑаблиÑÑ.
ÐÑпÑавление некоÑÑекÑного Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÑлÑми Ñ ÑанимÑÑ Ð·Ð½Ð°Ñений в коде коÑÑежей, обÑабоÑаннÑÑ JIT (ÐÑвид РоÑли) §
Ðогда JIT-обÑабоÑка не иÑполÑзовалаÑÑ, коÑÑекÑно пÑименÑлоÑÑ ÑаÑÑиÑение знака, ÑÑо пÑиводило к ÑÐ°Ð·Ð½Ð¾Ð¼Ñ Ð¿ÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½ÐµÐ±Ð¾Ð»ÑÑÐ¸Ñ ÑелоÑиÑленнÑÑ Ñипов даннÑÑ . РболÑÑинÑÑве ÑлÑÑаев ÑÑо неÑооÑвеÑÑÑвие не пÑоÑвлÑлоÑÑ, но пÑи иÑполÑзовании Ñзлов плана Memoize ÑикÑиÑовалиÑÑ Ð¾Ñибки «could not find memoization table entry» (не ÑдалоÑÑ Ð½Ð°Ð¹Ñи запиÑи в ÑаблиÑе Ñ Ð¼ÐµÐ¼Ð¾Ð¸Ð·Ð°Ñией). ÐÑли Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ñ Ð¸ дÑÑгие пÑоÑвлениÑ.
УÑÑÑанение Ñедкого ÑлÑÑÐ°Ñ ÑÐ±Ð¾Ñ Ð¿Ñи обÑабоÑке Ñ ÐµÑиÑованнÑÑ Ð·Ð°Ð¿ÑоÑов Ñ
GROUPING SETS(ÐÑвид РоÑли) §ÐÑпÑавление непÑавилÑной логики вÑбоÑа ÑазмеÑа Ñ ÐµÑ-ÑÐ°Ð±Ð»Ð¸Ñ Ð² ÑоединениÑÑ Ð¿Ð¾ Ñ ÐµÑÑ (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)
Ðногда пÑи ÑоединениÑÑ Ð¿Ð¾ Ñ ÐµÑÑ Ð¸ÑполÑзовалоÑÑ Ð±Ð¾Ð»ÑÑе памÑÑи, Ñем пÑедполагалоÑÑ, или она ÑаÑпÑеделÑлаÑÑ Ð½ÐµÑÑÑекÑивно.
УлÑÑÑение логики поиÑка Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑÑнкÑий ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑаÑиÑÑикой Ð´Ð»Ñ Ð¾ÑноÑений (ÐаÑан ÐоÑÑаÑÑ) § §
ТепеÑÑ ÑÑнкÑии
pg_restore_relation_stats(),pg_clear_relation_stats(),pg_restore_attribute_stats()иpg_clear_attribute_stats()пÑовеÑÑÑÑ Ð¿Ñава до полÑÑÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки Ñелевого оÑноÑениÑ, а не поÑле.ÐÑпÑавление непÑавилÑной логики кеÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½ÑоÑмаÑии о ÑезÑлÑÑиÑÑÑÑем оÑноÑении Ð´Ð»Ñ ÑÑиггеÑов (ÐÑвид РоÑли, ÐÐ¼Ð¸Ñ ÐангоÑе) §
РанÑÑе, еÑли набоÑÑ ÑÑолбÑов ÑекÑий ÑизиÑеÑки не ÑооÑвеÑÑÑвовали набоÑам ÑÑолбÑов ÑодиÑелÑÑÐºÐ¸Ñ ÑекÑиониÑованнÑÑ ÑаблиÑ, могли возникаÑÑ Ñбои.
УÑÑÑанение ÑÐ±Ð¾Ñ Ð¿Ñи пеÑепÑовеÑÐºÐ°Ñ EvalPlanQual Ð´Ð»Ñ ÑекÑиониÑованнÑÑ ÑÐ°Ð±Ð»Ð¸Ñ (ÐÑвид РоÑли, ÐÐ¼Ð¸Ñ ÐангоÑе) §
ÐÑпÑавление обÑабоÑки EvalPlanQual ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð¸Ð»Ð¸ неÑÑандаÑÑнÑÑ Ñоединений, Ñ ÐºÐ¾ÑоÑÑÑ Ð½ÐµÑ Ð°Ð»ÑÑеÑнаÑивного плана локалÑного ÑоединениÑ, подгоÑовленного Ð´Ð»Ñ Ð¿ÐµÑепÑовеÑки EPQ (ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада, ÐÑÑÑо ФÑдзиÑа) §
Ð ÑÑÐ¸Ñ ÑлÑÑаÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑÑÑ ÑÑоÑонние или неÑÑандаÑÑнÑе меÑÐ¾Ð´Ñ Ð´Ð¾ÑÑÑпа. ÐÑого не пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð¾, ÑÑо, как пÑавило, пÑиводило к ÑбоÑм.
ÐÑопÑÑк копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð³ÑаниÑений пÑи вÑполнении
DETACH CONCURRENTLYÐ´Ð»Ñ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ (ХайÑн Ðи) §РанÑÑе в ÑамкаÑ
ALTER TABLE DETACH PARTITION CONCURRENTLYогÑаниÑÐµÐ½Ð¸Ñ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¿Ð¸ÑовалиÑÑ Ð² оÑÑоединÑннÑÑ ÑекÑиÑ. ÐÑо бÑло необÑзаÑелÑно оÑÑаÑÑи из-за Ñого, ÑÑо копиÑование не вÑполнÑлоÑÑ Ð¿ÑиDETACHв неблокиÑÑÑÑем Ñежиме. Ðднако оÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¿ÑиÑина в Ñом, ÑÑо в ÑлÑÑае ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ Ð²ÑÑажение огÑаниÑÐµÐ½Ð¸Ñ ÑодеÑÐ¶Ð¸Ñ ÑÑÑлки на OID ÑодиÑелÑÑкой ÑаблиÑÑ. ÐÑо меÑÐ°ÐµÑ Ð¿Ñи вÑгÑÑзке/воÑÑÑановлении, а Ñакже в ÑлÑÑаÑÑ , когда поÑле вÑполнениÑDETACHÑодиÑелÑÑÐºÐ°Ñ ÑаблиÑа ÑдалÑеÑÑÑ. ÐаÑÐ¸Ð½Ð°Ñ Ñ Ð²ÐµÑÑии 19, огÑаниÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÑÑе не бÑдÑÑ ÐºÐ¾Ð¿Ð¸ÑоваÑÑÑÑ. ЧÑÐ¾Ð±Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð¸Ð·Ð¸ÑоваÑÑ ÑиÑки непÑедвиденнÑÑ Ð¿Ð¾ÑледÑÑвий, в вÑпÑÑеннÑÑ Ð²ÐµÑÑиÑÑ ÐºÐ¾Ð¿Ð¸Ñование огÑаниÑÐµÐ½Ð¸Ñ Ð¿ÑопÑÑкаеÑÑÑ ÑолÑко Ð´Ð»Ñ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ.ÐапÑÐµÑ Ð½Ð° добавление генеÑиÑÑемÑÑ ÑÑолбÑов в клÑÑи ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ (ЦзÑÐ½Ñ Ð¥Ð¸, ÐÑÑÑÐ¾Ñ ÐапаÑ)
ÐапÑÐµÑ Ñже бÑл Ñеализован, но в некоÑоÑÑÑ ÑлÑÑаÑÑ Ð¿ÑовеÑки не ÑÑабаÑÑвали, напÑимеÑ, когда ÑÑÑлка на ÑÑÐ¾Ð»Ð±ÐµÑ Ð½ÐµÑвно ÑодеÑжалаÑÑ Ð² ÑÑÑлке на вÑÑ ÑÑÑокÑ.
ÐапÑÐµÑ Ð½Ð° иÑполÑзование генеÑиÑÑемÑÑ ÑÑолбÑов в пÑедложениÑÑ
COPY ... FROM ... WHERE(ÐиÑÐµÑ ÐйзенÑÑаÑÑ, ЦзÑÐ½Ñ Ð¥Ð¸) §РанÑÑе попÑÑки ÑоÑлаÑÑÑÑ Ð½Ð° Ñакой ÑÑÐ¾Ð»Ð±ÐµÑ Ð¿Ñиводили к некоÑÑекÑÐ½Ð¾Ð¼Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ ÑÑÑÐ°Ð½Ð½Ð¾Ð¼Ñ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± оÑибке, поÑколÑÐºÑ Ð½Ð° Ð¼Ð¾Ð¼ÐµÐ½Ñ ÑилÑÑÑаÑии
WHEREÑакие генеÑиÑÑемÑе ÑÑолбÑÑ ÐµÑÑ Ð½Ðµ бÑли вÑÑиÑленÑ.ÐедопÑÑение ÑÑолбÑа иденÑиÑикаÑии Ñ Ð¾Ð³ÑаниÑением NOT NULL, помеÑеннÑм как неÑабоÑее (ЦзÑÐ½Ñ Ð¥Ð¸) §
СÑолбÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑии Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ NOT NULL, но пÑовеÑка пÑопÑÑкала ÑÑÐ¾Ñ Ð¾ÑобÑй ÑлÑÑай.
ÐÑедоÑвÑаÑение поÑенÑиалÑного иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑвобождÑнной памÑÑи пÑи паÑаллелÑной оÑиÑÑке (Ðевин Ðмен ÐниÑ)
Такое поведение не наблÑдалоÑÑ Ð² ÑÑандаÑÑнÑÑ ÑбоÑÐºÐ°Ñ , но ÑеоÑеÑиÑеÑки пÑедÑÑавлÑло опаÑноÑÑÑ.
ÐÑпÑавление пÑовеÑки видимоÑÑи Ð´Ð»Ñ Ð¾Ð±ÑекÑов ÑÑаÑиÑÑики в
pg_temp(Ðой ÐиÑ) §Римени обÑекÑа ÑÑаÑиÑÑики, ÑаÑположенного во вÑеменной ÑÑ ÐµÐ¼Ðµ, должно бÑÑÑ Ñказание ÑÑ ÐµÐ¼Ñ, однако ÑÑнкÑиÑ
pg_statistics_obj_is_visible()игноÑиÑовала ÑÑо пÑавило и могла веÑнÑÑÑ Â«true» Ð´Ð»Ñ Ð¾Ð±ÑекÑа, Ð´Ð»Ñ ÐºÐ¾ÑоÑого ÑÑ ÐµÐ¼Ð° не Ñказана. Ð ÑÐ²Ð¾Ñ Ð¾ÑеÑÐµÐ´Ñ Ñакие ÑÑнкÑии, какpg_describe_object(), могли ÑказаÑÑ ÑÑ ÐµÐ¼Ñ Ð² имени обÑекÑа некоÑÑекÑно.УÑÑÑанение незнаÑиÑелÑной ÑÑеÑки памÑÑи пÑи воÑпÑоизведении из WAL ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (ÐаÑан ÐоÑÑаÑÑ) §
ÐÑпÑавление вÑвода инÑоÑмаÑии о задеÑжке ÑепликаÑии в пÑедÑÑавлении
pg_stat_replication(ФÑдзии ÐаÑао) §ÐÑли пÑи воÑпÑоизведении WAL на лÑбом ÑезеÑвном ÑеÑвеÑе LSN пеÑеÑÑавал ÑвелиÑиваÑÑÑÑ, обновление ÑÑолбÑов
write_lagиflush_lagпÑекÑаÑалоÑÑ.УÑÑÑанение дÑблиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑообÑений о некоÑÑекÑнÑÑ Ð·Ð½Ð°ÑениÑÑ Ð¿Ð°ÑамеÑÑа
primary_slot_nameв жÑÑнале (ФÑдзии ÐаÑао) §УÑÑÑанение Ñбоев пÑи Ñказании в
synchronized_standby_slotsнеÑÑÑеÑÑвÑÑÑÐ¸Ñ ÑлоÑов ÑепликаÑии (Шлок ÐÑÑл) §Удаление незаконÑенного Ñайла ÑоÑÑоÑÐ½Ð¸Ñ ÑлоÑа поÑле ÑÐ±Ð¾Ñ Ð·Ð°Ð¿Ð¸Ñи ÑоÑÑоÑÐ½Ð¸Ñ ÑлоÑа ÑепликаÑии на диÑк (ÐикаÑÐ»Ñ ÐакÑе) §
РанÑÑе поÑле ÑбоÑ, напÑÐ¸Ð¼ÐµÑ Ð¿Ñи Ð½ÐµÑ Ð²Ð°Ñке меÑÑа, вÑеменнÑй Ñайл
state.tmpне ÑдалÑлÑÑ. ÐÑо вÑзÑвало пÑоблемÑ, поÑколÑÐºÑ Ð²Ñе поÑледÑÑÑие попÑÑки запиÑаÑÑ ÑоÑÑоÑние блокиÑовалиÑÑ, ÑÑо ÑÑебовало ÑÑÑной оÑиÑÑки.ÐÑпÑавление непÑавилÑной обÑабоÑки Ñигналов об иÑÑеÑении вÑемени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки паÑаллелÑнÑми ÑабоÑими пÑоÑеÑÑами в Ñ Ð¾Ð´Ðµ логиÑеÑкой ÑепликаÑии (ХайаÑо ÐÑÑода) §
Ðдин и ÑÐ¾Ñ Ð¶Ðµ Ð½Ð¾Ð¼ÐµÑ Ñигнала иÑполÑзовалÑÑ Ð¿Ñи оÑÑановке ÑабоÑего пÑоÑеÑÑа и пÑи иÑÑеÑении вÑемени Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки, ÑÑо вÑзÑвало пÑÑаниÑÑ.
ÐÑедоÑвÑаÑение нежелаÑелÑного вÑклÑÑÐµÐ½Ð¸Ñ Ð¿ÑиÑмника WAL пÑи пеÑеклÑÑении Ñ Ð¿Ð¾Ñоковой пеÑедаÑи на аÑÑ Ð¸Ð²Ð°ÑÐ¸Ñ Ð¸ÑÑоÑника WAL (СÑнÑн ЧжоÑ) §
Ðогда Ð»Ð¸Ð½Ð¸Ñ Ð²Ñемени менÑеÑÑÑ, в ожидании новой наÑалÑной ÑоÑки поÑоковой пеÑедаÑи пÑиÑмник WAL ÑезеÑвного ÑеÑвеÑа должен пÑодолжаÑÑ ÑабоÑÑ. РанÑÑе он поÑÑоÑнно вÑклÑÑалÑÑ Ð¸ ÑÑÐ°Ð·Ñ Ñнова запÑÑкалÑÑ, ÑÑо могло пÑивеÑÑи к пÑÑаниÑе в оÑÑлеживании ÑÑаÑÑÑа.
ÐÑпÑавлена пÑоблема иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¾ÑвобождÑнной памÑÑи пÑи кеÑиÑовании инÑоÑмаÑии о ÑÐ¸Ð½Ñ ÑонизаÑии оÑноÑений модÑлем логиÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ pgoutput (ÐÐ¸Ð³Ð½ÐµÑ Ð¡Ð¸, ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада) §
ÐÑибка в Ñ Ð¾Ð´Ðµ логиÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð³Ð»Ð° пÑиводиÑÑ Ðº ÑбоÑм поÑледÑÑÑÐ¸Ñ Ð¿Ð¾Ð¿ÑÑок логиÑеÑкого декодиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð² Ñом же ÑеанÑе. ÐÑоблема возникала, ÑолÑко когда модÑÐ»Ñ pgoutput вÑзÑвалÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ SQL-ÑÑнкÑий.
ÐÑедоÑвÑаÑение ненÑжного аннÑлиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑлоÑов логиÑеÑкой ÑепликаÑии (ÐеÑÑÑан ÐÑÑво) §
ÐозвÑаÑение иÑклÑÑÐµÐ½Ð¸Ñ Ð² пÑавило ÑоÑÑиÑовки
CпÑи ÑÑÑановке локали (ÐжеÑÑ ÐевиÑ) §ÐÑклÑÑение позволÑÐµÑ ÑÑÑÑаниÑÑ ÑегÑеÑÑÐ¸Ñ Ð´Ð¾ÑÑÑпа к обÑим каÑалогам на Ñаннем ÑÑапе запÑÑка обÑлÑживаÑÑего пÑоÑеÑÑа до Ñого, как вÑбÑана база даннÑÑ . ÐÑоблема не заÑÑагивала код ÑдÑа PostgreSQL, но вÑзÑвала Ñбои некоÑоÑÑÑ ÑаÑÑиÑений.
ÐÑпÑавление оÑибоÑного вÑвода ÑообÑений об оÑÐ¸Ð±ÐºÐ°Ñ Ð¿Ñи пÑовеÑке налиÑÐ¸Ñ Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð¿Ñав админиÑÑÑаÑоÑа Windows (ÐÑайан ÐÑин) §
СообÑение об оÑибке или не вÑводилоÑÑ ÑовÑем, или ÑодеÑжало мÑÑоÑ. Ðалоб на ÑÑÑ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð½Ðµ поÑÑÑпало, ÑÑо ÑказÑÐ²Ð°ÐµÑ Ð½Ð° Ñо, ÑÑо оÑибка ÑÑÐ¸Ñ ÑиÑÑемнÑÑ Ð²Ñзовов пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð° кÑайне Ñедко.
УÑÑÑанение ÑÐ±Ð¾Ñ Ð¿Ñи попÑÑке пÑоÑеÑÑиÑоваÑÑ PostgreSQL, иÑполÑзÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе паÑамеÑÑÑ libsanitizer (ÐмманÑÑÐ»Ñ Ð¡Ð¸Ð±Ð¸, Ðжейкоб Чемпион) §
УÑÑÑанение ложнÑÑ Ð¿ÑедÑпÑеждений пÑи пÑовеÑке конÑекÑÑов памÑÑи в оÑладоÑнÑÑ ÑбоÑÐºÐ°Ñ 64-биÑной Windows (ÐÑвид РоÑли) §
ÐоÑÑекÑÐ½Ð°Ñ Ð¾Ð±ÑабоÑка
GROUP BY DISTINCTв опеÑаÑоÑÐ°Ñ Ð¿ÑиÑÐ²Ð°Ð¸Ð²Ð°Ð½Ð¸Ñ PL/pgSQL (Том Ðейн) §ÐнализаÑÐ¾Ñ Ð½Ðµ ÑаÑпознавал паÑамеÑÑ
DISTINCT, поÑÑÐ¾Ð¼Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° вÑполнÑлаÑÑ ÐºÐ°Ðº бÑдÑо ÑGROUP BY.УÑÑÑанение ÑÑеÑки памÑÑи пÑи обÑабоÑке оÑибки SQL в PL/Python (Том Ðейн)
УÑÑÑанена ÑÑеÑка памÑÑи в ÑеÑение вÑего ÑеанÑа, поÑвивÑаÑÑÑ Ð² пÑедÑдÑÑÐ¸Ñ ÐºÐ¾ÑÑекÑиÑÑÑÑÐ¸Ñ Ð²ÑпÑÑÐºÐ°Ñ .
ÐÑпÑавление Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ libpq в оÑноÑении обÑабоÑки оÑибок в Windows, ÑвÑзаннÑÑ Ñ ÑокеÑами, в логике GSSAPI (Ðин У, Том Ðейн) §
Ðод Ð´Ð»Ñ ÑиÑÑованиÑ/деÑиÑÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑедаваемÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¿Ñи иÑполÑзовании GSSAPI не ÑаÑпознавал ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð¾Ñибок в ÑокеÑе ÑоединениÑ, поÑколÑÐºÑ Windows ÑообÑÐ°ÐµÑ Ð¾ ÑÐ°ÐºÐ¸Ñ Ð¾ÑÐ¸Ð±ÐºÐ°Ñ Ð½Ðµ Ñак, как дÑÑгие ÐС. ÐÑо пÑиводило к невозможноÑÑи ÑÑÑановиÑÑ Ñакие ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð² Windows.
ÐÑпÑавление вÑгÑÑзки ненаÑледÑемÑÑ Ð¾Ð³ÑаниÑений NOT NULL, ÑÑÑановленнÑÑ Ð´Ð»Ñ Ð½Ð°ÑледÑемÑÑ ÑÑолбÑов ÑаблиÑÑ (Ðилип ÐÑмаÑ) §
УÑилиÑа pg_dump не ÑÐ¾Ñ ÑанÑла Ñакие огÑаниÑÐµÐ½Ð¸Ñ Ð¿Ñи вÑгÑÑзке Ñ ÑеÑвеÑа до веÑÑии 18.
ÐÑпÑавление ÑоÑÑиÑовки огÑаниÑений внеÑÐ½Ð¸Ñ ÐºÐ»ÑÑей ÑÑилиÑой pg_dump (ÐлÑваÑо ÐÑÑеÑа) §
ÐÑпÑавление обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð¾Ð¿ÑеделÑннÑй поÑÑдок Ð´Ð»Ñ ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов баз даннÑÑ , ÑÑо Ñже бÑло Ñделано Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñипов обÑекÑов.
ÐÑпÑавление ÑазлиÑнÑÑ Ð¾Ñибок в логике ÑжаÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ pg_dump и pg_restore (ÐаниÑÐ»Ñ ÐÑÑÑаÑÑÑон, Том Ðейн) § § §
РнекоÑоÑÑÑ Ð¼ÐµÑÑÐ°Ñ Ð¿ÑовеÑка пÑопÑÑкалаÑÑ Ð¸Ð»Ð¸ вÑполнÑлаÑÑ Ð½ÐµÐ¿ÑавилÑно. Ðа компÑÑÑеÑÐ°Ñ Ñ Ð¿Ð¾ÑÑдком Ð±Ð°Ð¹Ñ Ð¾Ñ ÑÑаÑÑего возникали вопÑоÑÑ Ð¿ÐµÑеноÑимоÑÑи. СообÑений об ÑÑÐ¸Ñ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ð°Ñ Ð½Ðµ поÑÑÑпало, Ñак как код иÑполÑзÑеÑÑÑ ÑолÑко Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ ÑжаÑÑÑ Ñайлов Ñ Ð¿ÐµÑеÑнем болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов в ÑÐ°Ð¼ÐºÐ°Ñ Ð²ÑгÑÑзок каÑалогов. pg_dump не ÑоздаÑÑ ÑÐ°ÐºÐ¸Ñ Ð²ÑгÑÑзок; пÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ð±Ñ Ð²Ð¾Ð·Ð½Ð¸ÐºÐ»Ð¸ в ÑлÑÑае ÑжаÑÐ¸Ñ Ñайла Ñ Ð¿ÐµÑеÑнем болÑÑÐ¸Ñ Ð¾Ð±ÑекÑов вÑÑÑнÑÑ, ÑÑо возможно, но иÑполÑзÑеÑÑÑ Ñедко.
ÐÑпÑавление Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ pgbench, ÑÑÐ¾Ð±Ñ Ð¿ÑогÑамма завеÑÑалаÑÑ ÑÑаÑно пÑи запÑÑке опеÑаÑии
COPY(ÐнÑонин ÐоннеÑой) §ÐзнаÑалÑно не планиÑовалоÑÑ, ÑÑо pgbench бÑÐ´ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ñакое поведение, но без него пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð¾ заÑикливание.
ÐÑпÑавление вÑвода ÑообÑений пÑогÑаммой pgbench в ÑлÑÑае неÑколÑÐºÐ¸Ñ Ð¾Ñибок (Юго ÐагаÑа) §
Ð ÑлÑÑаÑÑ , когда два поÑледоваÑелÑнÑÑ Ð²Ñзова
PQgetResultзавеÑÑалиÑÑ Ð¾Ñибкой, pgbench могла вÑвеÑÑи непÑавилÑное ÑообÑение об оÑибке.ÐÑпÑавление оÑибоÑного ÑÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ð¾Ð± оÑÐ¸Ð±ÐºÐ°Ñ Ð² pgbench в конвейеÑном Ñежиме (Юго ÐагаÑа) §
УÑÑÑанение ÑÑеÑки памÑÑи в pg_combinebackup пÑи обÑабоÑке оÑделÑнÑÑ Ñайлов(Том Ðейн) §
ÐбеÑпеÑение возможноÑÑи оÑмениÑÑ ÑÑнкÑии
contrib/pg_buffercache(СаÑÑÑнаÑаÑна ÐаÑлапÑÑам, Ð®Ð¹Ñ Ð°Ð½ ЦÑ) § §РнекоÑоÑÑÑ ÑлÑÑаÑÑ Ð¾Ð¿ÐµÑаÑии могли вÑполнÑÑÑÑÑ Ð¿ÑодолжиÑелÑное вÑÐµÐ¼Ñ Ð±ÐµÐ· пÑовеÑок пÑеÑÑваний.
ÐÑпÑавление пÑовеÑки пÑав
contrib/pg_prewarmÐ´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов (ÐÑÑ ÐаÑÑа, ÐаÑан ÐоÑÑаÑÑ) § §pg_prewarm()пÑовеÑÑÐµÑ Ð½Ð°Ð»Ð¸Ñие пÑаваSELECTÐ´Ð»Ñ Ð¾ÑноÑений, коÑоÑÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ ÑазогÑеÑÑ. Ðднако, поÑколÑÐºÑ Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов Ð½ÐµÑ Ð¾ÑделÑнÑÑ Ð¿Ñав SQL, ÑазогÑеÑÑ Ð¸Ñ Ð¼Ð¾Ð³Ð»Ð¸ ÑолÑко ÑÑпеÑполÑзоваÑели. ТепеÑÑ Ð±ÑÐ´ÐµÑ Ð¿ÑовеÑÑÑÑÑÑ Ð¿ÑавоSELECTÐ´Ð»Ñ ÑаблиÑÑ Ð¸Ð½Ð´ÐµÐºÑа.УÑÑÑанение ÑбоÑ
contrib/pg_stat_statements, когда две или более конÑÑанÑÑ Ð¿Ð¾Ð¼ÐµÑалиÑÑ ÐºÐ°Ðº занимаÑÑие Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ позиÑÐ¸Ñ Ð² ÑекÑÑе опеÑаÑоÑа SQL (Сами ÐмÑÐµÐ¹Ñ , ÐмиÑÑий Ðолгов) §ÐовÑÑение ÑÑÑойÑивоÑÑи
contrib/pgstattupleпÑи обÑабоÑке пÑÑÑÑÑ Ð¸Ð»Ð¸ неÑабоÑÐ¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа (ÐиÑин ÐоÑиани) §ТепеÑÑ Ð²Ñе полноÑÑÑÑ Ð½ÑлевÑе ÑÑÑаниÑÑ ÑаÑÑмаÑÑиваÑÑÑÑ ÐºÐ°Ðº Ñвободное пÑоÑÑÑанÑÑво, а ÑÑÑаниÑÑ, помеÑеннÑе как неÑабоÑие в ÑезÑлÑÑаÑе пÑовеÑки ÑазмеÑа оÑобого пÑоÑÑÑанÑÑва ÑÑÑаниÑÑ, пÑопÑÑкаÑÑÑÑ. ÐÐ»Ñ Ð¸Ð½Ð´ÐµÐºÑов btree полноÑÑÑÑ Ð½ÑлевÑе ÑÑÑаниÑÑ Ñже ÑаÑÑмаÑÑивалиÑÑ ÐºÐ°Ðº Ñвободное пÑоÑÑÑанÑÑво, но Ð´Ð»Ñ Ñ ÐµÑ-индекÑов и индекÑов GIST вÑводилаÑÑ Ð¾Ñибка, ÑÑо бÑло ÑилÑно неÑдобно Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей. Также Ð´Ð»Ñ Ð²ÑÐµÑ ÑÑÑÑ Ñипов индекÑов повÑеждÑннÑе ÑÑÑаниÑÑ Ð½Ðµ вÑзÑваÑÑ Ð¾ÑибкÑ, а пÑопÑÑкаÑÑÑÑ.
УÑиление баÑÑеÑов Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸ запиÑи компилÑÑоÑом Clang (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
ÐÑедполагалоÑÑ, ÑÑо
__atomic_thread_fence()ÑоздаÑÑ Ð´Ð¾ÑÑаÑоÑнÑй баÑÑеÑ, ÑÑÐ¾Ð±Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¾Ñ C не менÑл поÑÑдок доÑÑÑпа к памÑÑи, однако оказалоÑÑ, ÑÑо ÑÑо огÑаниÑение не ÑабоÑало Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑоÑа Clang, позволÑÑ ÐµÐ¼Ñ Ð³ÐµÐ½ÐµÑиÑоваÑÑ Ð½ÐµÐ¿ÑавилÑнÑй код, как минимÑм, Ð´Ð»Ñ Ð¿ÑоÑеÑÑоÑов RISC-V, MIPS и LoongArch. ЧÑÐ¾Ð±Ñ ÑÑо иÑпÑавиÑÑ, бÑли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑвнÑе баÑÑеÑÑ Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑоÑа.ÐÑпÑавлена инÑÑаÑÑÑÑкÑÑÑа ÑбоÑки PGXS, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð´Ð´ÐµÑжаÑÑ ÑбоÑÐºÑ Ñайлов
poÐ´Ð»Ñ ÑаÑÑиÑений Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ NLS (Ð Ñ ÐаÑÑмÑÑа) §