Пасля года распрацоўкі апублікаваная новая стабільная галіна СКБД PostgreSQL 12. Абнаўленні для новай галінкі будуць выходзіць цягам пяці гадоў да лістапада 2024 года.
Дададзена падтрымка «генераваных слупкоў«, значэнне якіх вылічаецца на аснове выразы, які ахоплівае значэння іншых слупкоў у той жа табліцы (аналаг уяўленняў, але для асобных слупкоў). Генераваныя слупкі могуць быць двух тыпаў - захоўваемыя і віртуальныя. У першым выпадку значэнне вылічаецца ў момант дадання ці змены дадзеных, а ў другім - пры кожным чытанні на аснове бягучага стану іншых слупкоў. У наш час у PostgreSQL падтрымліваюцца толькі захоўваемыя генераваныя слупкі;
Дададзена магчымасць выканання запытаў дадзеных з JSON-дакументаў пры дапамозе Path-выразаў, якія нагадваюць XPath і вызначаных у стандарце SQL/JSON. Для павышэння эфектыўнасці апрацоўкі падобных выразаў для дакументаў, якія захоўваюцца ў фармаце JSONB, прымяняюцца існуючыя механізмы індэксавання;
Уключана па змаўчанні прымяненне JIT-кампілятара (Just-in-Time) на аснове напрацовак LLVM для паскарэння выканання некаторых выразаў у працэсе апрацоўкі SQL-запыту. Напрыклад, JIT дастасоўны для паскарэння выканання выразаў усярэдзіне блокаў «WHERE», у выходных спісах (target lists), агрэгатных выразах і некаторых унутраных аперацыях;
Істотна павялічана прадукцыйнасць індэксавання. Індэксы B-tree аптымізаваны для працы ва ўмовах частай змены індэксаў – у тэстах TPC-C назіраецца агульнае павышэнне прадукцыйнасці і зніжэнне спажывання дыскавай прасторы ў сярэднім на 40%. Зніжаны накладныя выдаткі пры генерацыі лога папераджальнай запісы (WAL) для тыпаў індэксаў GiST, GIN і SP-GiST. Для GiST дададзена магчымасць стварэння індэксаў-акрутак (праз выраз INCLUDE), якія ўключаюць дадатковыя слупкі. У аперацыі СТВАРЫЦЬ СТАТЫСТЫКУ забяспечана падтрымка статыстыкі аб найбольш тыповых значэннях (MCV), якая дазваляе генераваць больш аптымальныя планы запытаў пры выкарыстанні нераўнамерна размеркаваных слупкоў;
Рэалізацыя секцыянавання (партыцыравання) аптымізавана для запытаў, якія ахопліваюць табліцы з тысячамі секцый, але абмяжоўваюцца выбаркай абмежаванага падмноства дадзеных. Павялічана прадукцыйнасць дадання дадзеных у секцыянаваныя табліцы пры дапамозе аперацый INSERT і COPY, а таксама забяспечана магчымасць дадання новых секцый праз "ALTER TABLE ATTACH PARTITION" без блакіроўкі выканання запытаў;
Дададзена падтрымка аўтаматычнага inline-разгортвання абагульненых таблічных выразаў (Common Table Expression, CTE), якія дазваляюць выкарыстоўваць часовыя найменныя выніковыя наборы, якія задаюцца пры дапамозе аператара WITH. Inline-разгортванне дазваляе павысіць прадукцыйнасць большасці запытаў, але пакуль ужываецца толькі для нерэкурсіўных CTE;
Дададзена падтрымка недэтэрмінаваных уласцівасцяў лакалі «Collation», які дазваляе задаваць правілы сартавання і метады супастаўлення з улікам сэнсу сімвалаў (напрыклад, пры сартаванні лічбавых значэнняў улічваецца наяўнасць мінуса і кропкі перад лікам і розныя віды напісання, а пры параўнанні не прымаецца да ўвагі рэгістр сімвалаў і наяўнасць знака націску) ;
Дададзена падтрымка шматфактарнай аўтэнтыфікацыі кліента, пры якой у pg_hba.conf для аўтэнтыфікацыі можна камбінаваць аўтэнтыфікацыю па SSL-сертыфікаце (clientcert=verify-full) c дадатковым метадам аўтэнтыфікацыі, такім як scram-sha-256;
Дададзена падтрымка шыфравання канала сувязі пры аўтэнтыфікацыі праз GSSAPI, як на баку кліента, так і на баку сервера;
Дададзена падтрымка вызначэння LDAP-сервераў на аснове запісаў "DNS SRV", калі PostgreSQL сабраны з OpenLDAP;
Дададзена аперацыя «REINDEX CONCURRENTLY»для перастраення індэксаў без блакіроўкі аперацый запісу ў індэкс;
Дададзена каманда pg_checksums, якая дазваляе для існуючай БД уключаць і выключаць праверку кантрольных сум старонак дадзеных (раней дадзеная аперацыя падтрымлівалася толькі падчас ініцыялізацыі БД);
Забяспечаны вывад індыкатара прагрэсу выканання аперацый CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL і pg_checksums;
Дададзена каманда «CREATE ACCESS METHOD»для падлучэння апрацоўшчыкаў новых метадаў захоўвання табліц, аптымізаваных для розных спецыфічных задач. У цяперашні час адзіным убудаваным метадам доступу да табліц з'яўляецца "heap";
Файл канфігурацыі recovery.conf аб'яднаны з postgresql.conf. У якасці індыкатараў пераходу ў стан аднаўлення пасля збою зараз варта выкарыстоўваць файлы recovery.signal і standby.signal.