E.50. ÐÑпÑÑк 11
ÐаÑа вÑпÑÑка: 2018-10-18
E.50.1. ÐбзоÑ
Ð ÑиÑло клÑÑевÑÑ ÑÑовеÑÑенÑÑвований PostgreSQL 11 Ð²Ñ Ð¾Ð´ÑÑ:
УÑовеÑÑенÑÑвованиÑ, ÑвÑзаннÑе Ñ ÑекÑиониÑованием:
Реализована поддеÑжка ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ
Реализована поддеÑжка клÑÑей
PRIMARY KEY,FOREIGN KEY, индекÑов и ÑÑиггеÑов в ÑекÑиониÑованнÑÑ ÑаблиÑаÑÐобавлена возможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑекÑии по ÑмолÑаниÑ, ÑодеÑжаÑей ÑÑÑоки, не попадаÑÑие ни в Ð¾Ð´Ð½Ñ Ð´ÑÑгÑÑ ÑекÑиÑ
ÐÑи изменении опеÑаÑоÑами
UPDATEзнаÑений клÑÑа ÑÐ°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð² ÑÑÑÐ¾ÐºÐ°Ñ ÑекÑиониÑованной ÑаблиÑÑ ÑÑи ÑÑÑоки ÑепеÑÑ Ð±ÑдÑÑ Ð¿ÐµÑеноÑиÑÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑие ÑекÑииУлÑÑÑена пÑоизводиÑелÑноÑÑÑ
SELECTблагодаÑÑ ÑÑÑаÑегиÑм опÑимизиÑованного ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑекÑий пÑи планиÑовании и вÑполнении запÑоÑов
УÑовеÑÑенÑÑвованиÑ, ÑвÑзаннÑе Ñ ÑаÑпаÑаллеливанием:
Ðоманда
CREATE INDEXÑепеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑÑÑоиÑÑ Ð¸Ð½Ð´ÐµÐºÑ-B-деÑево паÑаллелÑноСÑало возможнÑм паÑаллелÑное вÑполнение
CREATE TABLE .. AS,CREATE MATERIALIZED VIEWи некоÑоÑÑÑ Ð·Ð°Ð¿ÑоÑов ÑUNIONРаÑпаÑаллеливаемÑе ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ Ð¸ ÑаÑпаÑаллеливаемÑе поÑледоваÑелÑнÑе ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑепеÑÑ Ð²ÑполнÑÑÑÑÑ ÑÑÑекÑивнее
Ð¥ÑанимÑе пÑоÑедÑÑÑ Ð½Ð° SQL, поддеÑживаÑÑие внÑÑÑенние ÑÑанзакÑии
ÐозможноÑÑÑ JIT-компилÑÑии некоÑоÑого кода SQL, позволÑÑÑÐ°Ñ ÑÑкоÑиÑÑ Ð²ÑÑиÑление вÑÑажений
ÐконнÑе ÑÑнкÑии ÑепеÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаÑÑ Ð²Ñе ваÑианÑÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ñамки, опÑеделÑннÑе в ÑÑандаÑÑе SQL:2011, вклÑÑаÑ
RANGE, ÑежимÑмеÑениеPRECEDING/FOLLOWINGGROUPSи Ñамки Ñ Ð¸ÑклÑÑениемÐозможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ÐºÑÑваÑÑÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑов, коÑоÑÑе опÑеделÑÑÑÑÑ Ð¿Ñедложением
INCLUDEкомандÑCREATE INDEXÐного дÑÑÐ³Ð¸Ñ ÑлÑÑÑений, ÑвелиÑиваÑÑÐ¸Ñ Ð¿ÑоизводиÑелÑноÑÑÑ, в ÑаÑÑноÑÑи возможноÑÑÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿ÐµÑезапиÑи ÑаблиÑÑ Ð¿Ñи вÑполнении
ALTER TABLE .. ADD COLUMNÑ Ð¾ÑлиÑнÑм Ð¾Ñ NULL знаÑением по ÑмолÑаниÑ
ÐÑедÑдÑÑие пÑнкÑÑ Ð±Ð¾Ð»ÐµÐµ подÑобно опиÑÐ°Ð½Ñ Ð² ÑледÑÑÑÐ¸Ñ ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ .
E.50.2. ÐигÑаÑÐ¸Ñ Ð½Ð° веÑÑÐ¸Ñ 11
Тем, кÑо Ñ Ð¾ÑÐµÑ Ð¼Ð¸Ð³ÑиÑоваÑÑ Ð´Ð°Ð½Ð½Ñе из лÑбой пÑедÑдÑÑей веÑÑии, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑполниÑÑ Ð²ÑгÑÑзкÑ/загÑÑÐ·ÐºÑ Ð´Ð°Ð½Ð½ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ pg_dumpall либо иÑполÑзоваÑÑ pg_upgrade или логиÑеÑкÑÑ ÑепликаÑиÑ. ÐбÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пеÑÐµÑ Ð¾Ð´Ðµ на более новÑÑ Ð¾ÑновнÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в Разделе 17.6.
РвеÑÑии 11 Ñеализован ÑÑд изменений, коÑоÑÑе могÑÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° ÑовмеÑÑимоÑÑÑ Ñ Ð¿ÑедÑдÑÑими вÑпÑÑками. РаÑÑмоÑÑиÑе ÑледÑÑÑие неÑовмеÑÑимÑе аÑпекÑÑ:
pg_dump ÑепеÑÑ Ð²ÑгÑÑÐ¶Ð°ÐµÑ Ð¸ ÑвойÑÑва Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , а не ÑолÑко ÐµÑ ÑодеÑжимое (ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)
Ранее Ñакие аÑÑибÑÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ , как ÑазÑеÑениÑ
GRANT/REVOKEÑÑÐ¾Ð²Ð½Ñ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸ назнаÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеменнÑÑALTER DATABASE SET, вÑгÑÑжалиÑÑ ÑолÑко ÑÑилиÑой pg_dumpall. ТепеÑÑ Ð¿Ñи вÑполненииpg_dump --createиpg_restore --createв дополнение к обÑекÑам Ð±Ð°Ð·Ñ Ð±ÑдÑÑ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ Ð¸ Ñакие ÐµÑ ÑвойÑÑва. ÐÑи ÑÑомpg_dumpall -gбÑÐ´ÐµÑ Ð²ÑводиÑÑ ÑолÑко аÑÑибÑÑÑ, ÑвÑзаннÑе Ñ ÑолÑми и ÑаблиÑнÑми пÑоÑÑÑанÑÑвами. СодеÑжимое полного вÑвода pg_dumpall (без-g) не изменилоÑÑ.ÐÐ¾Ð¼Ð°Ð½Ð´Ñ pg_dump и pg_restore без клÑÑа
--createÑепеÑÑ Ð½Ðµ вÑгÑÑжаÑÑ/не воÑÑÑанавливаÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии на ÑÑовне Ð±Ð°Ð·Ñ Ð¸ меÑки безопаÑноÑÑи; ÑÑи аÑÑибÑÑÑ ÑепеÑÑ ÑÑиÑаÑÑÑÑ ÑвойÑÑвами Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ .ÐÑи воÑÑÑановлении вÑвода pg_dumpall ÑепеÑÑ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð²Ñегда Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ð¾ÑÑÑанавливаÑÑÑÑ Ñ Ð¸ÑÑ Ð¾Ð´Ð½Ñми локалÑми и кодиÑовками, и поÑÑомÑ, еÑли Ð»Ð¾ÐºÐ°Ð»Ñ Ð¸Ð»Ð¸ кодиÑовка окажеÑÑÑ Ð½ÐµÐ¸Ð·Ð²ÐµÑÑной в Ñелевой ÑиÑÑеме, пÑоизойдÑÑ Ð¾Ñибка. Ранее команда
CREATE DATABASEвÑдавалаÑÑ Ð±ÐµÐ· ÑÐ°ÐºÐ¸Ñ Ñказаний, еÑли Ð»Ð¾ÐºÐ°Ð»Ñ Ð¸ кодиÑовка Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½Ðµ оÑлиÑалиÑÑ Ð¾Ñ ÑÑÑановленнÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð² ÑÑаÑом клаÑÑеÑе.pg_dumpall --cleanÑепеÑÑ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð²Ð¾ÑÑÑановиÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñе паÑамеÑÑÑ Ð»Ð¾ÐºÐ°Ð»Ð¸ и кодиÑовки Ð´Ð»Ñ Ð±Ð°Ð· даннÑÑpostgresиtemplate1, а не ÑолÑко Ð´Ð»Ñ Ð±Ð°Ð·, ÑоздаваемÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑми.ÐеоднознаÑноÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ð²Ñзовом ÑÑнкÑии и обÑаÑением к ÑÑолбÑÑ ÑепеÑÑ ÑазÑеÑаеÑÑÑ Ñ ÑÑÑÑом ÑинÑакÑиÑеÑкой ÑоÑÐ¼Ñ (Том Ðейн)
РпÑедположении, ÑÑо
xâ Ð¸Ð¼Ñ ÑаблиÑÑ Ð¸Ð»Ð¸ ÑоÑÑавного ÑÑолбÑа, PostgreSQL ÑÑадиÑионно ÑÑиÑал ÑинÑакÑиÑеÑкие ÑоÑмÑиf(x)ÑавнознаÑнÑми. ÐÑо позволÑло иÑполÑзоваÑÑ Ñакие пÑиÑмÑ, как вÑзов ÑпеÑиалÑно напиÑанной ÑÑнкÑии в виде обÑаÑÐµÐ½Ð¸Ñ Ðº вÑÑиÑлÑÐµÐ¼Ð¾Ð¼Ñ ÑÑолбÑÑ. Ðднако в ÑлÑÑаÑÑ , допÑÑкаÑÑÐ¸Ñ Ð¾Ð±Ð° пÑоÑÑениÑ, Ñанее вÑегда вÑбиÑалоÑÑ Ð¿ÑоÑÑение ÑÑолбÑа, ÑÑо пÑиводило к неожиданнÑм ÑезÑлÑÑаÑам, когда полÑзоваÑÐµÐ»Ñ Ð½Ð°Ð¼ÐµÑевалÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ вÑзваÑÑ ÑÑнкÑиÑ. ТепеÑÑ Ð² ÑлÑÑае подобной неоднознаÑноÑÑи пÑоÑÑение вÑбиÑаеÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ ÑинÑакÑиÑеÑкой ÑоÑмÑ.x.fСÑÑогое ÑÑебование ÑникалÑноÑÑи Ð´Ð»Ñ Ð¸Ð¼Ñн огÑаниÑений ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ доменов (Том Ðейн)
PostgreSQL ожидаеÑ, ÑÑо имена огÑаниÑений ÑаблиÑÑ, как и имена огÑаниÑений доменов, бÑдÑÑ ÑникалÑнÑми. Ðднако Ñанее ÑÑо не конÑÑолиÑовалоÑÑ Ñвно, и в оÑобÑÑ ÑлÑÑаÑÑ Ð¼Ð¾Ð³Ð»Ð¸ поÑвлÑÑÑÑÑ Ð´ÑблиÑÑÑÑиеÑÑ Ð¸Ð¼ÐµÐ½Ð°.
ÐбÑабоÑка в ÑÑнкÑиÑÑ
power(numeric, numeric)иpower(float8, float8)аÑгÑменÑовNaNв ÑооÑвеÑÑÑвии Ñо ÑÑандаÑÑом POSIX (Том Ðейн, Ðан Ðин Ð¥Ñонг)СоглаÑно ÑÑандаÑÑÑ POSIX,
NaN ^ 0 = 1и1 ^ NaN = 1, а во вÑÐµÑ Ð´ÑÑÐ³Ð¸Ñ ÑлÑÑаÑÑ Ñ Ð°ÑгÑменÑамиNaNдолжно возвÑаÑаÑÑÑÑ Ð·Ð½Ð°ÑениеNaN. Ранееpower(numeric, numeric)пÑоÑÑо вÑегда возвÑаÑалаNaN; ÑейÑÐ°Ñ Ð¾Ð½Ð° ÑÑиÑÑÐ²Ð°ÐµÑ ÑÑи два иÑклÑÑениÑ.power(float8, float8)Ñледовала ÑÑандаÑÑÑ Ð² завиÑимоÑÑи Ð¾Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°Ñей библиоÑеки C; однако на некоÑоÑÑÑ ÑÑаÑÑÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ð°Ñ Unix ÑÑа библиоÑека ÑабоÑала некоÑÑекÑно, и кÑоме Ñого, возникали ÑаÑÑ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð² некоÑоÑÑÑ Ð²ÐµÑÑиÑÑ Windows.ÐедопÑÑение игноÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÑнкÑией
to_number()Ñимволов, коÑоÑÑе не ÑооÑвеÑÑÑвÑÑÑ Ñимволам в Ñаблоне (ÐÐ»Ð¸Ð²ÐµÑ Ð¤Ð¾Ñд)Ð ÑаÑÑноÑÑи,
SELECT to_number('1234', '9,999')ÑанÑÑе возвÑаÑала134. ТепеÑÑ Ð¾Ð½Ð° возвÑаÑаеÑ1234. Ð¡Ð¸Ð¼Ð²Ð¾Ð»Ñ Ð² ÑаблонеLиTHÑепеÑÑ Ð±ÑдÑÑ Ð¿Ð¾Ð³Ð»Ð¾ÑаÑÑ ÑолÑко ÑимволÑ, оÑлиÑнÑе Ð¾Ñ ÑиÑÑ, знаков плÑÑ/минÑÑ, деÑÑÑиÑной ÑоÑки и запÑÑой.ÐÑпÑавление поведениÑ
to_date(),to_number(), иto_timestamp(), ÑÑÐ¾Ð±Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ Ñимвола в Ñаблоне пÑопÑÑкалÑÑ Ð¾Ð´Ð¸Ð½ Ñимвол в даннÑÑ (Том Ðейн)Ранее они пÑопÑÑкали один Ð±Ð°Ð¹Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ байÑа, ÑоÑÑавлÑÑÑего Ñимвол Ñаблона, ÑÑо пÑиводило к неадекваÑÐ½Ð¾Ð¼Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¿Ñи налиÑии многобайÑнÑÑ Ñимволов в Ñаблоне или вводимой ÑÑÑоке.
Ð
to_char(),to_number()иto_timestamp()иÑпÑавлена обÑабоÑка Ñимволов обÑаÑной коÑой ÑеÑÑÑ Ð² двойнÑÑ ÐºÐ°Ð²ÑÑÐºÐ°Ñ Ð²Ð½ÑÑÑи ÑÑÑоки Ñаблона.Такие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑепеÑÑ ÑкÑаниÑÑÑÑ ÑледÑÑÑий за ними Ñимвол, а именно Ñимвол кавÑÑек или дÑÑгÑÑ Ð¾Ð±ÑаÑнÑÑ ÐºÐ¾ÑÑÑ ÑеÑÑÑ.
ÐоÑÑекÑÐ½Ð°Ñ Ð¾Ð±ÑабоÑка вÑÑажений Ñ Ð¾ÑноÑиÑелÑнÑми пÑÑÑми в
xmltable(),xpath()и дÑÑÐ³Ð¸Ñ ÑÑнкÑиÑÑ , ÑабоÑаÑÑÐ¸Ñ Ñ XML (ÐаÑкÑÑ Ðинанд)СоглаÑно ÑÑандаÑÑÑ SQL, оÑноÑиÑелÑнÑе пÑÑи нÑжно ÑаÑÑмаÑÑиваÑÑ Ð¾Ñ Ñзла докÑменÑа XML, а не Ð¾Ñ ÐºÐ¾Ñневого Ñзла, как ÑанÑÑе ÑÑо делали даннÑе ÑÑнкÑии.
Ð ÑаÑÑиÑенном пÑоÑоколе запÑоÑов знаÑение
statement_timeoutдолжно пÑименÑÑÑÑÑ Ðº ÐºÐ°Ð¶Ð´Ð¾Ð¼Ñ Ð¾ÑделÑÐ½Ð¾Ð¼Ñ ÑообÑÐµÐ½Ð¸Ñ Execute, а не ко вÑем командам до Sync (ТаÑÑо ÐÑии, ÐндÑÐµÑ Ð¤Ñойнд)Удаление ÑÑолбÑа
relhaspkeyиз ÑиÑÑемного каÑалогаpg_class(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑиложениÑ, коÑоÑÑм нÑжно пÑовеÑиÑÑ Ð¿ÐµÑвиÑнÑй клÑÑ, Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð±ÑаÑаÑÑÑÑ Ð²
pg_index.Ðамена ÑÑолбÑов
proisaggиproiswindowв ÑиÑÑемном каÑалогеpg_procнаprokind(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐовÑй ÑÑÐ¾Ð»Ð±ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑко вÑделÑÐµÑ ÑÑнкÑии, пÑоÑедÑÑÑ, а Ñакже агÑегаÑнÑе и оконнÑе ÑÑнкÑии.
ÐÑкоÑÑекÑиÑовано ÑодеÑжимое ÑÑолбÑа инÑоÑмаÑионной ÑÑ ÐµÐ¼Ñ
tables.table_typeâ знаÑениеFOREIGN TABLEизменено наFOREIGN(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Ðовое ÑодеÑжимое ÑооÑвеÑÑÑвÑÐµÑ ÑÑандаÑÑÑ SQL.
ÐÐ·Ð¼ÐµÐ½ÐµÐ½Ñ Ð¾ÑобÑажаемÑе в ps имена ÑоновÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов Ð´Ð»Ñ ÑооÑвеÑÑÑÐ²Ð¸Ñ Ð¼ÐµÑкам
pg_stat_activity.backend_type(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑовеÑка ÑазÑеÑений Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов ÑепеÑÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸Ñ Ð¿Ñи оÑкÑÑÑии обÑекÑа, в ÑÑнкÑии
lo_open(), а не пÑи попÑÑке ÑÑениÑ/запиÑи (Том Ðейн, ÐикаÑÐ»Ñ ÐакÑе)ТепеÑÑ Ð² ÑлÑÑае оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¿Ñав на запиÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ Ð¾Ñибка, Ñогда как ÑанÑÑе ÐµÑ Ð¼Ð¾Ð³Ð»Ð¾ не бÑÑÑ, еÑли ÑобÑÑвенно запиÑÑ Ð² болÑÑой обÑÐµÐºÑ Ð²Ð¾Ð¾Ð±Ñе не пÑоизводилаÑÑ.
РазÑеÑение пеÑеиндекÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¾Ð±ÑÐ¸Ñ ÐºÐ°Ñалогов ÑолÑко Ð´Ð»Ñ ÑÑпеÑполÑзоваÑелей (ÐикаÑÐ»Ñ ÐакÑе, РобеÑÑ Ð¥Ð°Ð°Ñ)
Ранее ÑÑо Ñакже могли делаÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÑÑÑ Ð±Ð°Ð· даннÑÑ , но ÑепеÑÑ ÑÑа опеÑаÑÐ¸Ñ ÑÑиÑаеÑÑÑ Ð²ÑÑ Ð¾Ð´ÑÑей за Ñамки Ð¸Ñ Ð¿Ð¾Ð»Ð½Ð¾Ð¼Ð¾Ñий.
Удаление ÑÑÑаÑевÑÐ¸Ñ ÑÑнкÑий
adminpackpg_file_read(),pg_file_length()иpg_logfile_rotate()(СÑивен ФÑоÑÑ)РавнознаÑÐ½Ð°Ñ ÑÑнкÑионалÑноÑÑÑ ÑепеÑÑ Ð¿ÑедÑÑавлена в ÑдÑе ÑеÑвеÑа. СÑаÑÑе инÑÑаллÑÑии
adminpackпÑÐ¾Ð´Ð¾Ð»Ð¶Ð°Ñ Ð¸ÑполÑзоваÑÑ ÑÑи ÑÑнкÑии, пока не бÑдÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ñ Ð¿Ð¾ÑÑедÑÑвомALTER EXTENSION ... UPDATE.ÐаÑамеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´, заклÑÑÑннÑе в двойнÑе кавÑÑки, ÑÑали воÑпÑинимаÑÑÑÑ Ñ ÑÑÑÑом ÑегиÑÑÑа (ÐаниÑÐ»Ñ ÐÑÑÑаÑÑÑон)
Ранее имена паÑамеÑÑов в опÑеделÑннÑÑ SQL-ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ Ð¿ÑинÑдиÑелÑно пÑиводилиÑÑ Ðº Ð½Ð¸Ð¶Ð½ÐµÐ¼Ñ ÑегиÑÑÑÑ, даже когда они задавалиÑÑ Ð² кавÑÑÐºÐ°Ñ ; Ñак, напÑимеÑ,
"FillFactor"воÑпÑинималоÑÑ ÐºÐ°Ðº Ð¸Ð¼Ñ Ð¿Ð°ÑамеÑÑа Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑа, Ñогда как пÑавилÑное Ð¸Ð¼Ñ Ð´Ð¾Ð»Ð¶Ð½Ð¾ запиÑÑваÑÑÑÑ ÑÑÑоÑнÑми бÑквами. ТепеÑÑ Ð² подобнÑÑ ÑлÑÑаÑÑ Ð±ÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ Ð¾Ñибка.ÐиквидаÑÐ¸Ñ ÑеÑвеÑного паÑамеÑÑа
replacement_sort_tuples(ÐиÑÐµÑ Ðейган)ÐÑло ÑеÑено, ÑÑо ÑоÑÑиÑовка Ñ Ð·Ð°Ð¼ÐµÑением в наÑÑоÑÑее вÑÐµÐ¼Ñ Ð½Ðµ Ð¸Ð¼ÐµÐµÑ Ð¿ÑакÑиÑеÑкой полÑзÑ.
Удаление пÑедложениÑ
WITHвCREATE FUNCTION(ÐикаÑÐ»Ñ ÐакÑе)PostgreSQL Ñже долгое вÑÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑандаÑÑнÑй ваÑÐ¸Ð°Ð½Ñ Ð·Ð°Ð¿Ð¸Ñи Ð´Ð»Ñ ÑÑой возможноÑÑи.
Ð ÑÑиггеÑнÑÑ ÑÑнкÑиÑÑ , напиÑаннÑÑ Ð½Ð° PL/pgSQL, пеÑеменнÑе
OLDиNEWÑепеÑÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº NULL, когда им не пÑиÑвоено знаÑение (Том Ðейн)Ранее ÑÑÑлки на Ñакие пеÑеменнÑе могли воÑпÑинимаÑÑÑÑ Ð½Ð° ÑÑадии ÑазбоÑа, но не пÑи вÑполнении.
E.50.3. ÐзменениÑ
Ðиже Ð²Ñ Ð½Ð°Ð¹Ð´ÑÑе подÑобнÑй ÑпиÑок изменений, пÑоизоÑедÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð¿ÑедÑдÑÑим оÑновнÑм вÑпÑÑком и вÑпÑÑком PostgreSQL 11.
E.50.3.1. СеÑвеÑ
E.50.3.1.1. СекÑиониÑование
ÐозможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑекÑий по Ñ ÐµÑÑ ÐºÐ»ÑÑевого ÑÑолбÑа (ÐмÑл СÑл)
ÐоддеÑжка индекÑов в ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ (ÐлÑваÑо ÐÑÑеÑа, ÐÐ¼Ð¸Ñ ÐангоÑе)
«ÐндекÑ» в ÑекÑиониÑованной ÑаблиÑе надо понимаÑÑ Ð½Ðµ как ÑизиÑеÑкий индекÑ, поÑÑÑоеннÑй по вÑей ÑÑой ÑаблиÑе, а ÑкоÑее как Ñаблон авÑомаÑиÑеÑкого ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½ÑÑ Ð¸Ð½Ð´ÐµÐºÑов в каждой ÑекÑии ÑаблиÑÑ.
ÐÑли клÑÑ ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñ Ð¾Ð´Ð¸Ñ Ð² Ð½Ð°Ð±Ð¾Ñ ÑÑолбÑов индекÑа, ÑекÑиониÑованнÑй Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð¼ÐµÑÑ Ñ Ð°ÑакÑеÑиÑÑикÑ
UNIQUE. Ð ÑÑом ÑлÑÑае он бÑÐ´ÐµÑ Ð¿ÑедÑÑавлÑÑÑ Ñобой полноÑенное огÑаниÑение ÑникалÑноÑÑи во вÑей ÑекÑиониÑованной ÑаблиÑе, неÑмоÑÑÑ Ð½Ð° Ñо, ÑÑо каждÑй ÑизиÑеÑкий Ð¸Ð½Ð´ÐµÐºÑ Ð¾Ð±ÐµÑпеÑÐ¸Ð²Ð°ÐµÑ ÑникалÑноÑÑÑ ÑолÑко в оÑделÑной ÑекÑии.ÐÐ¾Ð²Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
ALTER INDEX ATTACH PARTITIONпозволÑÐµÑ ÑвÑзаÑÑ ÑÑÑеÑÑвÑÑÑий в опÑеделÑнной ÑекÑии Ð¸Ð½Ð´ÐµÐºÑ Ñ ÑооÑвеÑÑÑвÑÑÑим Ñаблоном индекÑа Ð´Ð»Ñ ÑодеÑжаÑей ÐµÑ ÑекÑиониÑованной ÑаблиÑÑ. ÐÑо даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð³Ð¸Ð±ÐºÐ¾ обÑазовÑваÑÑ Ð½Ð¾Ð²Ñе ÑекÑиониÑованнÑе индекÑÑ Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑÐ¸Ñ ÑекÑиониÑованнÑÑ ÑаблиÑ.ÐозможноÑÑÑ ÑоздаваÑÑ Ð²Ð½ÐµÑние клÑÑи Ñ ÑекÑиониÑованнÑми ÑаблиÑами (ÐлÑваÑо ÐÑÑеÑа)
ÐоддеÑжка ÑÑиггеÑов
FOR EACH ROWв ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ (ÐлÑваÑо ÐÑÑеÑа)ÐÑи Ñоздании ÑÑиггеÑа в ÑекÑиониÑованной ÑаблиÑе авÑомаÑиÑеÑки ÑоздаÑÑÑÑ ÑÑиггеÑÑ Ð²Ð¾ вÑÐµÑ ÐµÑ ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¸ в добавлÑемÑÑ Ð²Ð¿Ð¾ÑледÑÑвии ÑекÑиÑÑ . ÐÑо Ñакже позволÑÐµÑ ÑеализоваÑÑ Ð¾ÑложеннÑе огÑаниÑÐµÐ½Ð¸Ñ ÑникалÑноÑÑи в ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ .
ÐозможноÑÑÑ Ð¾Ð¿ÑеделиÑÑ Ð´Ð»Ñ ÑекÑиониÑованной ÑаблиÑÑ ÑекÑÐ¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (Ðживан ÐÐ°Ð´Ñ Ðµ, Ðина ÐмеÑÑон, ÐÑÑÑÐ¾Ñ ÐапаÑ, Ð Ð°Ñ Ð¸Ð»Ð° СÑед, РобеÑÑ Ð¥Ð°Ð°Ñ)
СекÑÐ¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð±ÑÐ´ÐµÑ ÑодеÑжаÑÑ ÑÑÑоки, не попадаÑÑие ни в Ð¾Ð´Ð½Ñ Ð¸Ð· дÑÑÐ³Ð¸Ñ ÑекÑий, ÑÑо ÑооÑвеÑÑÑвÑÑÑим обÑазом ÑÑиÑÑваеÑÑÑ Ð¿Ñи поиÑке.
ÐÑи изменении опеÑаÑоÑами
UPDATEзнаÑений клÑÑа ÑÐ°Ð·Ð±Ð¸ÐµÐ½Ð¸Ñ Ð² ÑÑÑÐ¾ÐºÐ°Ñ ÑекÑиониÑованной ÑаблиÑÑ ÑÑи ÑÑÑоки ÑепеÑÑ Ð±ÑдÑÑ Ð¿ÐµÑеноÑиÑÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑие ÑекÑии (ÐÐ¼Ð¸Ñ Ð¥Ð°Ð½Ð´ÐµÐºÐ°Ñ)ÐÑи вÑполнении в ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´
INSERT,UPDATEиCOPYÑÑÑоки должнÑм обÑазом пеÑенапÑавлÑÑÑÑÑ Ð² ÑекÑии, ÑазмеÑÑннÑе в ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑÐ°Ñ (ÐÑÑÑо ФÑдзиÑа, ÐÐ¼Ð¸Ñ ÐангоÑе)ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ Ð¾Ð±ÑÑÑкой ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑаблиÑ
postgres_fdw. Так как ÑÑнкÑиÑ-обÑабоÑÑикExecForeignInsertвÑзÑваеÑÑÑ Ð½Ðµ Ñак, как ÑанÑÑе, обÑÑÑки ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ модиÑиÑиÑоваÑÑ ÑооÑвеÑÑÑвÑÑÑим обÑазом.Реализована возможноÑÑÑ Ð±ÑÑÑÑого ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑекÑий пÑи обÑабоÑке запÑоÑов (ÐÐ¼Ð¸Ñ ÐангоÑе, ÐÑвид РоÑли, Ðилип ÐÑмаÑ)
Ðна позволÑÐµÑ ÑÑкоÑиÑÑ Ð´Ð¾ÑÑÑп к ÑекÑиониÑованнÑм ÑаблиÑам Ñо многими ÑекÑиÑми.
Реализована возможноÑÑÑ ÑÑÑÑÐ°Ð½ÐµÐ½Ð¸Ñ ÑекÑий пÑи вÑполнении запÑоÑа (ÐÑвид РоÑли, Ðина ÐмеÑÑон)
Ранее ÑекÑии иÑклÑÑалиÑÑ ÑолÑко во вÑÐµÐ¼Ñ Ð¿Ð»Ð°Ð½Ð¸ÑованиÑ, Ñак ÑÑо во Ð¼Ð½Ð¾Ð³Ð¸Ñ ÑоединениÑÑ Ð¸ подгоÑовленнÑÑ Ð·Ð°Ð¿ÑоÑÐ°Ñ Ð¾ÑÑÑеÑÑвиÑÑ Ð¸ÑклÑÑение ÑекÑий бÑло невозможно.
ÐÑи Ñоединении ÑекÑиониÑованнÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð¿Ð¾ ÑавенÑÑÐ²Ñ ÑÑÑок Ñеализована возможноÑÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ¿Ð¾ÑÑедÑÑвенно ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ ÑекÑий (ÐÑÑÑÐ¾Ñ ÐапаÑ)
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑа возможноÑÑÑ Ð¾ÑклÑÑена, но ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ вклÑÑиÑÑ, изменив паÑамеÑÑ
enable_partitionwise_join.ÐозможноÑÑÑ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð°Ð³ÑегаÑнÑÑ ÑÑнкÑий в ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ Ð¿Ð¾ оÑделÑнÑм ÑекÑиÑм Ñ Ð¿Ð¾ÑледÑÑÑим обÑединением ÑезÑлÑÑаÑов (Ðживан Чок, ÐÑÑÑÐ¾Ñ ÐапаÑ, РобеÑÑ Ð¥Ð°Ð°Ñ)
ÐÑа ÑÑнкÑионалÑноÑÑÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð¾ÑклÑÑена, но ÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ вклÑÑиÑÑ, изменив паÑамеÑÑ
enable_partitionwise_aggregate.Ð
postgres_fdwÑеализована возможноÑÑÑ ÑаÑпÑеделÑÑÑ Ð°Ð³ÑегаÑнÑе вÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð² ÑекÑиониÑованнÑÑ ÑаблиÑÐ°Ñ Ð¿Ð¾ ÑÑоÑонним ÑаблиÑам-ÑекÑиÑм (Ðживан Чок)
E.50.3.1.2. ÐаÑаллелÑное вÑполнение запÑоÑов
ÐозможноÑÑÑ Ð¿Ð°ÑаллелÑного поÑÑÑÐ¾ÐµÐ½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов btree (ÐиÑÐµÑ Ðейган, Ð ÑÑаб ÐаÑиа, Хейкки ÐиннакангаÑ)
ÐозможноÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ Ð² паÑаллелÑном Ñежиме Ñ Ð¸ÑполÑзованием обÑей Ñ ÐµÑ-ÑаблиÑÑ (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
ÐÑи вÑполнении
UNIONобÑазÑÑÑие его запÑоÑÑSELECTмогÑÑ Ð²ÑполнÑÑÑÑÑ Ð¿Ð°ÑаллелÑно, еÑли оÑделÑнÑйSELECTне Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑаÑпаÑаллелен (ÐÐ¼Ð¸Ñ Ð¥Ð°Ð½Ð´ÐµÐºÐ°Ñ, РобеÑÑ Ð¥Ð°Ð°Ñ, ÐмÑл СÑл)СканиÑование ÑекÑий Ð¼Ð¾Ð¶ÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивно иÑполÑзоваÑÑ Ð¿Ð°ÑаллелÑнÑе иÑполниÑели (ÐÐ¼Ð¸Ñ Ð¥Ð°Ð½Ð´ÐµÐºÐ°Ñ, РобеÑÑ Ð¥Ð°Ð°Ñ, ÐмÑл СÑл)
Указание
LIMITÐ¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑÑÑ Ð¿Ð°ÑаллелÑнÑм иÑполниÑелÑм (РобеÑÑ Ð¥Ð°Ð°Ñ, Том Ðейн)ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ ÑабоÑие пÑоÑеÑÑÑ Ð¼Ð¾Ð³ÑÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ Ð¼ÐµÐ½ÑÑий обÑÑм ÑезÑлÑÑаÑов и иÑполÑзоваÑÑ ÑеленапÑавленное ÑканиÑование индекÑа.
ÐозможноÑÑÑ ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов, вÑполнÑемÑÑ Ñазово, напÑимеÑ, агÑегаÑнÑÑ Ð·Ð°Ð¿ÑоÑов в пÑедложении
WHEREи ÑÑнкÑий в вÑÑ Ð¾Ð´Ð½Ð¾Ð¼ ÑпиÑке запÑоÑа (ÐÐ¼Ð¸Ñ Ðапила, РобеÑÑ Ð¥Ð°Ð°Ñ)Ðобавление ÑеÑвеÑного паÑамеÑÑа
parallel_leader_participation, ÑпÑавлÑÑÑего ÑÑаÑÑием ведÑÑего пÑоÑеÑÑа в вÑполнении подпланов (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð²ÐºÐ»ÑÑÑн, Ñо еÑÑÑ Ð²ÐµÐ´ÑÑий бÑÐ´ÐµÑ Ð¸ÑполнÑÑÑ Ð¿Ð¾Ð´Ð¿Ð»Ð°Ð½Ñ.
ÐозможноÑÑÑ ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´
CREATE TABLE ... AS,SELECT INTOиCREATE MATERIALIZED VIEW(ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)УвелиÑение ÑкоÑоÑÑи поÑледоваÑелÑного ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñо множеÑÑвом паÑаллелÑнÑÑ Ð¸ÑполниÑелей (ÐÑвид РоÑли)
Ðобавление в вÑвод
EXPLAINинÑоÑмаÑии о дейÑÑвиÑÑ , вÑполнÑемÑÑ Ð¿Ñи ÑоÑÑиÑовке Ñ Ð¿Ð°ÑаллелÑнÑми иÑполниÑелÑми (РобеÑÑ Ð¥Ð°Ð°Ñ, Том Ðейн)
E.50.3.1.3. ÐндекÑÑ
ÐозможноÑÑÑ Ð²ÐºÐ»ÑÑаÑÑ Ð² индекÑÑ-B-деÑевÑÑ ÑÑолбÑÑ, коÑоÑÑе не Ð²Ñ Ð¾Ð´ÑÑ Ð² огÑаниÑение ÑникалÑноÑÑи или клÑÑ Ð¿Ð¾Ð¸Ñка, но могÑÑ Ð±ÑÑÑ Ð¿ÑоÑиÑÐ°Ð½Ñ Ð¿Ñи ÑканиÑовании ÑолÑко индекÑа (ÐнаÑÑаÑÐ¸Ñ ÐÑбенникова, ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков, ФÑÐ´Ð¾Ñ Ð¡Ð¸Ð³Ð°ÐµÐ²)
ÐÐ»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑÐ°ÐºÐ¸Ñ Ð¸Ð½Ð´ÐµÐºÑов пÑедназнаÑено новое пÑедложение
INCLUDEкомандÑCREATE INDEX. Таким обÑазом ÑÑало возможнÑм ÑоздаваÑÑ Â«Ð¿Ð¾ÐºÑÑваÑÑие индекÑÑ», опÑимизиÑÑÑÑие некоÑоÑÑе ÑÐ¸Ð¿Ñ Ð·Ð°Ð¿ÑоÑов. РпокÑÑваÑÑем индекÑе могÑÑ ÑодеÑжаÑÑÑÑ ÑÑолбÑÑ Ð´Ð°Ð¶Ðµ Ñ Ñакими Ñипами даннÑÑ , коÑоÑÑе не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ B-деÑево.УÑкоÑение Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² Ð¸Ð½Ð´ÐµÐºÑ Ð¼Ð¾Ð½Ð¾Ñонно ÑвелиÑиваÑÑÐ¸Ñ ÑÑ ÐºÐ»ÑÑей (Ðаван ÐеолаÑи, ÐиÑÐµÑ Ðейган)
УлÑÑÑение пÑоизводиÑелÑноÑÑи ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ñ ÐµÑ-индекÑа (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа, РобеÑÑ Ð¥Ð°Ð°Ñ)
Ðобавление пÑедикаÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов GiST, GIN и Ñ ÐµÑ-индекÑов (ШÑÐ±Ñ Ð°Ð¼ ÐаÑай)
ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ ÑменÑÑаеÑÑÑ Ð²ÐµÑоÑÑноÑÑÑ ÐºÐ¾Ð½ÑликÑов ÑеÑиализаÑии Ð´Ð»Ñ ÑÑанзакÑий в ÑеÑиализÑемом Ñежиме.
E.50.3.1.3.1. SP-GiST
Ðобавление опеÑаÑоÑа ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿ÑеÑикÑов
text^@textи ÑеализаÑÐ¸Ñ ÐµÐ³Ð¾ поддеÑжки в SP-GiST (ÐлÑдÑÑ ÐÑÑбангалиев)Ðн дейÑÑвÑÐµÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ конÑÑÑÑкÑии
пеÑеменнаÑLIKE 'Ñлово%'Ñ Ð¸Ð½Ð´ÐµÐºÑом btree, но обÑабаÑÑваеÑÑÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивно.ÐозможноÑÑÑ Ð¸Ð½Ð´ÐµÐºÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð½Ð¾Ð³Ð¾ÑголÑников Ñ SP-GiST (ÐикиÑа ÐлÑÑ Ð¾Ð², ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков)
ÐозможноÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² SP-GiST неÑоÑного пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»ÑÑей на ÑÑовне лиÑÑÑев (ФÑÐ´Ð¾Ñ Ð¡Ð¸Ð³Ð°ÐµÐ², Хейкки ÐиннакангаÑ, ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков, ÐикиÑа ÐлÑÑ Ð¾Ð²)
E.50.3.1.4. ÐпÑимизаÑоÑ
УлÑÑÑение вÑбоÑа наиболее ÑипиÑнÑÑ Ð·Ð½Ð°Ñений Ð´Ð»Ñ ÑÑаÑиÑÑики (ÐжеÑÑ ÐжейнÑ, Ðин РаÑид)
Ранее ÑамÑе ÑаÑÑÑе знаÑÐµÐ½Ð¸Ñ (Most-Common-Values, MCV) вÑбиÑалиÑÑ Ñ ÑÑÑÑом Ð¸Ñ ÑаÑÑоÑÑ Ð¾ÑноÑиÑелÑно вÑÐµÑ Ð´ÑÑÐ³Ð¸Ñ Ð·Ð½Ð°Ñений ÑÑолбÑа. ТепеÑÑ MCV вÑбиÑаÑÑÑÑ Ñ ÑÑÑÑом Ð¸Ñ ÑаÑÑоÑÑ Ð¾ÑноÑиÑелÑно знаÑений, не попадаÑÑÐ¸Ñ Ð² ÑиÑло MCV. ÐÑо ÑпоÑобÑÑвÑÐµÑ ÑлÑÑÑÐµÐ½Ð¸Ñ ÑÑаÑиÑÑики Ð´Ð»Ñ ÑавномеÑного и неÑавномеÑного ÑаÑпÑеделениÑ.
УлÑÑÑение оÑенок избиÑаÑелÑноÑÑи длÑ
>=и<=(Том Ðейн)Ранее Ð´Ð»Ñ Ð½Ð¸Ñ Ð¿ÑименÑлаÑÑ Ñа же оÑенка избиÑаÑелÑноÑÑи, ÑÑо и Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑоÑов
>и<, ÑооÑвеÑÑÑвенно, за иÑклÑÑением ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ ÐºÐ¾Ð½ÑÑанÑами из ÑиÑла MCV. ÐÑо изменение оÑобенно полезно Ð´Ð»Ñ ÑÑловийBETWEENÑ Ð¼Ð°Ð»ÐµÐ½Ñкими диапазонами.Сведение вÑÑажениÑ
пеÑеменнаÑ=пеÑеменнаÑк вÑÑажениÑпеÑеменнаÑIS NOT NULLÑам, где они ÑавнознаÑÐ½Ñ (Том Ðейн)ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ ÑлÑÑÑаеÑÑÑ Ð¾Ñенка избиÑаÑелÑноÑÑи.
УлÑÑÑение оÑенки ÑиÑла ÑÑÑок опÑимизаÑоÑом Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов
EXISTSиNOT EXISTS(Том Ðейн)УÑовеÑÑенÑÑвование опÑимизаÑоÑа, ÑÑÐ¾Ð±Ñ Ð¾Ð½ ÑÑиÑÑвал ÑÑоимоÑÑÑ Ð²ÑÑиÑлений и избиÑаÑелÑноÑÑÑ Ð´Ð»Ñ Ð¿Ñедложений
HAVING(Том Ðейн)
E.50.3.1.5. ÐбÑÐ°Ñ Ð¿ÑоизводиÑелÑноÑÑÑ
РеализаÑÐ¸Ñ JIT-компилÑÑии некоÑоÑÑÑ ÑаÑÑей планов Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов (ÐндÑÐµÑ Ð¤Ñойнд)
ÐÐ»Ñ ÑÑой ÑÑнкÑионалÑноÑÑи ÑÑебÑеÑÑÑ Ð½Ð°Ð»Ð¸Ñие LLVM. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð¾Ð½Ð° оÑклÑÑена, даже в ÑбоÑÐºÐ°Ñ , обеÑпеÑиваÑÑÐ¸Ñ ÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑжкÑ.
ÐозможноÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¿Ñи опÑеделÑннÑÑ ÑÑловиÑÑ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¸Ñовой каÑÑÑ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко индекÑа (ÐлекÑÐ°Ð½Ð´Ñ ÐÑзÑменков)
Ðбновление каÑÑÑ Ñвободного пÑоÑÑÑанÑÑва во вÑемÑ
VACUUM(ÐлаÑдио ФÑейÑе)ÐÑо позволÑÐµÑ Ð·Ð°Ð´ÐµÐ¹ÑÑвоваÑÑ Ð¾ÑвободивÑееÑÑ Ð¿ÑоÑÑÑанÑÑво более опеÑаÑивно.
ÐÑклÑÑение ненÑжнÑÑ Ð¾Ð¿ÐµÑаÑий ÑканиÑований индекÑа пÑи вÑполнении
VACUUM(ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада, ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков)УвелиÑение пÑоизводиÑелÑноÑÑи пÑи одновÑеменном ÑикÑиÑовании множеÑÑва ÑÑанзакÑий (ÐÐ¼Ð¸Ñ Ðапила)
Ðолее ÑÑÑекÑивное иÑполÑзование памÑÑи пÑи вÑполнении запÑоÑов, в ÑпиÑÐºÐ°Ñ ÑезÑлÑÑаÑов коÑоÑÑÑ ÑигÑÑиÑÑÑÑ ÑÑнкÑии, возвÑаÑаÑÑие множеÑÑва (ÐндÑÐµÑ Ð¤Ñойнд)
УÑкоÑение агÑегаÑнÑÑ Ð²ÑÑиÑлений (ÐндÑÐµÑ Ð¤Ñойнд)
РеализаÑÐ¸Ñ Ð²
postgres_fdwвозможноÑÑи пеÑедаваÑÑ Ð½Ð° ÑÑоÑонние ÑеÑвеÑÑ Ð·Ð°Ð¿ÑоÑÑUPDATEиDELETE, иÑполÑзÑÑÑие ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ (ÐÑÑÑо ФÑдзиÑа)Ранее могли пеÑедаваÑÑÑÑ ÑолÑко
UPDATEиDELETEбез Ñоединений.Ðобавление поддеÑжки болÑÑÐ¸Ñ ÑÑÑÐ°Ð½Ð¸Ñ Ð² Windows (ТакаÑки ЦÑнакава, Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
ÐÑа поддеÑжка вклÑÑаеÑÑÑ Ð¿Ð°ÑамеÑÑом конÑигÑÑаÑии huge_pages.
E.50.3.1.6. ÐониÑоÑинг
Ðобавление инÑоÑмаÑии об иÑполÑзовании памÑÑи в вÑвод
log_statement_stats,log_parser_stats,log_planner_statsиlog_executor_stats(ÐжаÑÑин ÐÑизби, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Ðобавление полÑ
pg_stat_activity.backend_type, в коÑоÑом показÑваеÑÑÑ Ñип ÑабоÑего пÑоÑеÑÑа (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑÐ¾Ñ Ñип Ñакже можно ÑвидеÑÑ Ð² вÑводе ps.
Ð Ñежиме
log_autovacuum_min_durationдобавлен вÑвод ÑообÑений о ÑаблиÑÐ°Ñ , коÑоÑÑе бÑли ÑдаленÑ, пока вÑполнÑлаÑÑ Ð¾ÑиÑÑка (ÐаÑан ÐоÑÑаÑÑ)
E.50.3.1.6.1. ÐнÑоÑмаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÑ ÐµÐ¼Ð°
Ðобавление ÑÑолбÑов в пÑедÑÑавлениÑ
information_schema, ÑвÑзаннÑе Ñ Ð¾Ð³ÑаниÑениÑми ÑÐ°Ð±Ð»Ð¸Ñ Ð¸ ÑÑиггеÑами (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Рименно, полÑ
triggers.action_order,triggers.action_reference_old_tableиtriggers.action_reference_new_table, Ñанее вÑегда ÑодеÑжавÑие NULL, ÑепеÑÑ Ð·Ð°Ð¿Ð¾Ð»Ð½ÐµÐ½Ñ Ð·Ð½Ð°ÑениÑми. Также добавилоÑÑ Ð¿Ð¾Ð»Ðµtable_constraints.enforced, но оно пока не ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ð¾Ð³Ð¾ знаÑениÑ.
E.50.3.1.7. ÐÑÑенÑиÑикаÑиÑ
ÐозможноÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ Ð½Ð° ÑеÑвеÑе более ÑложнÑе конÑÑÑÑкÑии LDAP в Ñежиме поиÑк+ÑвÑзÑвание (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
Ð ÑаÑÑноÑÑи, в
ldapsearchfilterможно задаваÑÑ ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°ÑиÑми аÑÑибÑÑов LDAP.ÐозможноÑÑÑ Ð°ÑÑенÑиÑикаÑии LDAP Ñ Ð¸ÑполÑзованием ÑиÑÑованного пÑоÑокола LDAP (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
Ранее Ð¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживали ÑабоÑÑ LDAP повеÑÑ TLS Ñ Ð¿Ð°ÑамеÑÑом
ldaptls=1. ÐовÑй меÑод TLS LDAP Ð´Ð»Ñ Ð·Ð°ÑиÑÑованного LDAP вклÑÑаеÑÑÑ Ð¿Ð°ÑамеÑÑомldapscheme=ldapsилиldapurl=ldaps://.УлÑÑÑен вÑвод ÑообÑений об оÑÐ¸Ð±ÐºÐ°Ñ LDAP (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
E.50.3.1.8. РазÑеÑениÑ
Ðобавление ÑÑандаÑÑнÑÑ Ñолей Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпом к Ñайловой ÑиÑÑеме (СÑивен ФÑоÑÑ)
Рименно, Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ñоли:
pg_read_server_files,pg_write_server_filesиpg_execute_server_program. ÐÑи Ñоли ÑепеÑÑ Ñакже опÑеделÑÑÑ, ÐºÐ¾Ð¼Ñ ÑазÑеÑено вÑполнÑÑÑCOPYна ÑÑоÑоне ÑеÑвеÑа и иÑполÑзоваÑÑ ÑаÑÑиÑениеfile_fdw. Ранее ÑÑи ÑÑнкÑии бÑли доÑÑÑÐ¿Ð½Ñ ÑолÑко ÑÑпеÑполÑзоваÑелÑм, и ÑейÑÐ°Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´ÑÑгим полÑзоваÑелÑм они недоÑÑÑпнÑ.ÐмеÑÑо ÑвнÑÑ Ð¿ÑовеÑок ÑÑпеÑполÑзоваÑелей огÑаниÑение доÑÑÑпа к ÑÑнкÑиÑм, коÑоÑÑе ÑабоÑаÑÑ Ñ Ñайловой ÑиÑÑемой, ÑепеÑÑ Ð¾Ð±ÐµÑпеÑиваеÑÑÑ ÑазÑеÑениÑми, ÑпÑавлÑемÑми командами
GRANT/REVOKE(СÑивен ФÑоÑÑ)СооÑвеÑÑÑвÑÑÑим обÑазом бÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑÑнкÑии:
pg_ls_dir(),pg_read_file(),pg_read_binary_file()иpg_stat_file().ÐеÑÐµÑ Ð¾Ð´ к иÑполÑзованиÑ
GRANT/REVOKEÐ´Ð»Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа к ÑÑнкÑиÑмlo_import()иlo_export()(ÐикаÑÐ»Ñ ÐакÑе, Том Ðейн)Ранее к ÑÑим ÑÑнкÑиÑм имели доÑÑÑп ÑолÑко ÑÑпеÑполÑзоваÑели.
УдалÑн паÑамеÑÑ Ð²Ñемени компилÑÑии
ALLOW_DANGEROUS_LO_FUNCTIONS.ÐÐ»Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа без паÑÐ¾Ð»Ñ Ðº ÑаблиÑам
postgres_fdwÑеÑез пÑедÑÑавление ÑепеÑÑ Ð¿ÑовеÑÑеÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¿ÑедÑÑавлениÑ, а не полÑзоваÑÐµÐ»Ñ ÑеанÑа (РобеÑÑ Ð¥Ð°Ð°Ñ)PostgreSQL позволÑÐµÑ ÑолÑко ÑÑпеÑполÑзоваÑелÑм обÑаÑаÑÑÑÑ Ðº ÑаблиÑам
postgres_fdwбез паÑолей, Ñо еÑÑÑ Ð² Ñежимеpeer. Ранее Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ñакого доÑÑÑпа ÑÑпеÑполÑзоваÑелем должен бÑл бÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ ÑеанÑа; ÑепеÑÑ Ð¶Ðµ пÑовеÑÑеÑÑÑ Ð²Ð»Ð°Ð´ÐµÐ»ÐµÑ Ð¿ÑедÑÑавлениÑ.ÐÑпÑавление некоÑÑекÑной пÑовеÑки ÑазÑеÑений Ð´Ð»Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовки в
SELECT FOR UPDATEÑ Ð¿ÑедÑÑавлениÑми (Том Ðейн)
E.50.3.1.9. ÐонÑигÑÑаÑÐ¸Ñ ÑеÑвеÑа
Ðобавление ÑеÑвеÑного паÑамеÑÑа
ssl_passphrase_command, позволÑÑÑего пеÑедаÑÑ Ð¿Ð°ÑолÑ, ÑÑебÑÑÑийÑÑ Ð´Ð»Ñ ÑаÑÑиÑÑовÑÐ²Ð°Ð½Ð¸Ñ Ñайлов клÑÑей SSL (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐмеÑÑе Ñ ÑÑим добавлен паÑамеÑÑ
ssl_passphrase_command_supports_reload, ÑказÑваÑÑий, нÑжно ли пеÑезагÑÑжаÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ SSL и вÑзÑваÑÑssl_passphrase_commandпÑи пеÑезагÑÑзке конÑигÑÑаÑии ÑеÑвеÑа.Ðобавление паÑамеÑÑа Ñ ÑанилиÑа
toast_tuple_target, опÑеделÑÑÑего минималÑнÑй ÑÐ°Ð·Ð¼ÐµÑ ÐºÐ¾ÑÑежа Ð´Ð»Ñ ÑаÑÑмоÑÑÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ TOAST (Саймон РиггÑ)ÐодÑазÑмеваемое по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð¾Ñоговое знаÑение Ð´Ð»Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ TOAST оÑÑалоÑÑ Ð¿Ñежним.
ÐозможноÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑеÑвеÑнÑÑ Ð¿Ð°ÑамеÑÑов, ÑвÑзаннÑÑ Ñ Ð¾Ð±ÑÑмом Ñайлов и памÑÑи, в байÑÐ°Ñ (Ðина ÐмеÑÑон)
ÐÐ¾Ð²Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñа обознаÑаеÑÑÑ Â«B». Ðна дополнÑÐµÑ Ð¿Ñежний Ð½Ð°Ð±Ð¾Ñ Ð¸Ð· «kB», «MB», «GB» и «TB».
E.50.3.1.10. ÐÑÑнал пÑедзапиÑи (WAL)
ÐозможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑазмеÑа Ñайлов WAL пÑи вÑзове initdb (Ðина ÐмеÑÑон)
Ранее ÑÐ°Ð·Ð¼ÐµÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑоÑÑавлÑл 16 ÐбайÑ, и измениÑÑ ÐµÐ³Ð¾ можно бÑло ÑолÑко пÑи компилÑÑии.
Ð¡Ð¾Ñ Ñанение даннÑÑ WAL ÑолÑко Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð¹ конÑÑолÑной ÑоÑки (Саймон РиггÑ)
Ранее запиÑи WAL ÑÐ¾Ñ ÑанÑлиÑÑ Ð´Ð»Ñ Ð´Ð²ÑÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑоÑек.
Ðаполнение нÑлÑми неиÑполÑзованной ÑаÑÑи пÑинÑдиÑелÑно пеÑеклÑÑаемÑÑ ÑегменÑов WAL Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑивного Ð¸Ñ ÑжаÑÐ¸Ñ (Чепмен ФлÑк)
E.50.3.2. Ðазовое ÑезеÑвное копиÑование и поÑÐ¾ÐºÐ¾Ð²Ð°Ñ ÑепликаÑиÑ
РепликаÑÐ¸Ñ Ð´ÐµÐ¹ÑÑвиÑ
TRUNCATEв Ñ Ð¾Ð´Ðµ логиÑеÑкой ÑепликаÑии (Саймон РиггÑ, ÐаÑко ÐенÑаÑини, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐеÑедаÑа инÑоÑмаÑии о подгоÑовленнÑÑ ÑÑанзакÑиÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑикам логиÑеÑкой ÑепликаÑии (ÐÐ¸ÐºÑ Ð¸Ð» СонÑакке, СÑÐ°Ñ ÐелÑвиÑ)
ÐÑклÑÑение нежÑÑналиÑÑемÑÑ Ð¸ вÑеменнÑÑ ÑаблиÑ, а Ñакже Ñайлов
pg_internal.initиз ÑÑанÑлиÑÑемÑÑ Ð±Ð°Ð·Ð¾Ð²ÑÑ ÐºÐ¾Ð¿Ð¸Ð¹ (ÐÑвид СÑил)ÐопиÑоваÑÑ Ñакие ÑÐ°Ð¹Ð»Ñ Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи.
ÐозможноÑÑÑ Ð¿ÑовеÑки конÑÑолÑнÑÑ ÑÑмм ÑÑÑÐ°Ð½Ð¸Ñ ÐºÑÑи пÑи ÑÑанÑлÑÑии базовой ÑезеÑвной копии (ÐÐ¸Ñ Ð°ÑÐ»Ñ Ðанк)
ÐозможноÑÑÑ Ð¿ÑогÑаммного Ñдвига позиÑии в ÑлоÑÐ°Ñ ÑепликаÑии, без ÑÑаÑÑÐ¸Ñ Ð¿Ð¾Ð´Ð¿Ð¸ÑÑиков (ÐеÑÑ Ðелинек)
ÐÑо позволÑÐµÑ ÑÑÑекÑивно пÑодвигаÑÑÑÑ Ð²Ð¿ÐµÑÑд в ÑлоÑе ÑепликаÑии, когда ÑÑиÑÑваÑÑ ÐµÐ³Ð¾ ÑодеÑжимое не ÑÑебÑеÑÑÑ. ÐÐ°Ð½Ð½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ñеализована в ÑÑнкÑии
pg_replication_slot_advance().Ðобавление инÑоÑмаÑии о линии вÑемени в Ñайл
backup_label(ÐикаÑÐ»Ñ ÐакÑе)Также добавлена пÑовеÑка на ÑооÑвеÑÑÑвие линии вÑемени в WAL линии вÑемени в Ñайле
backup_label.Ðобавление адÑеÑа Ñзла и поÑÑа в ÑиÑÑемное пÑедÑÑавление
pg_stat_wal_receiver(ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)
E.50.3.3. СлÑжебнÑе командÑ
ÐозможноÑÑÑ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ Ð¿ÐµÑезапиÑи ÑаблиÑÑ Ð¿Ñи добавлении в
ALTER TABLEÑÑолбÑа Ñ Ð¾ÑлиÑнÑм Ð¾Ñ NULL знаÑением по ÑмолÑÐ°Ð½Ð¸Ñ (ÐндÑÑ ÐÑнÑÑан, СеÑж Рило)ÐÑа опÑимизаÑÐ¸Ñ Ð²ÐºÐ»ÑÑаеÑÑÑ, когда знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð·Ð°Ð´Ð°ÑÑÑÑ ÐºÐ¾Ð½ÑÑанÑой.
ÐозможноÑÑÑ Ð±Ð»Ð¾ÐºÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑедÑÑавлений в ÑезÑлÑÑаÑе блокиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¸Ð¶ÐµÐ»ÐµÐ¶Ð°ÑÐ¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ (Юго ÐагаÑа)
ÐозможноÑÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð²
ALTER INDEXоÑиенÑиÑов ÑбоÑа ÑÑаÑиÑÑики Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов по вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ (ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков, ÐдÑиен ÐайÑаÑ)Ð psql команда
\d+ÑепеÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑÐ²Ð°ÐµÑ Ð¾ÑиенÑÐ¸Ñ ÑÑаÑиÑÑики Ð´Ð»Ñ Ð¸Ð½Ð´ÐµÐºÑов.ÐозможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð½ÐµÑколÑÐºÐ¸Ñ ÑÐ°Ð±Ð»Ð¸Ñ Ð² одной команде
VACUUMилиANALYZE(ÐаÑан ÐоÑÑаÑÑ)ÐÑоме Ñого, еÑли Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð¹-либо ÑаблиÑÑ, ÑпомÑнÑÑой в
VACUUM, задаÑÑÑÑ ÑпиÑок ÑÑолбÑов, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ добавиÑÑ ÐºÐ»ÑÑевое ÑловоANALYZE; Ñанее в ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ ÑказаниеANALYZEподÑазÑмевалоÑÑ.Ð
ANALYZEдобавлен ÑинÑакÑÐ¸Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑов в ÑÐºÐ¾Ð±ÐºÐ°Ñ (ÐаÑан ÐоÑÑаÑÑ)ÐодобнÑй ÑинÑакÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
VACUUM.Ðобавление в
CREATE AGGREGATEпаÑамеÑÑа, оÑмеÑаÑÑего поведение ÑÑнкÑии завеÑÑÐµÐ½Ð¸Ñ Ð°Ð³ÑегаÑа (Том Ðейн)ÐÑо позволÑÐµÑ Ð¾Ð¿ÑимизиÑоваÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑÑкие агÑегаÑнÑе ÑÑнкÑии и иÑполÑзоваÑÑ Ð¸Ñ ÐºÐ°Ðº оконнÑе ÑÑнкÑии.
E.50.3.4. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
ÐозможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð°ÑÑивов доменов (Том Ðейн)
ÐÑо Ñакже позволÑÐµÑ Ð¸ÑполÑзоваÑÑ
array_agg()Ñ Ð´Ð¾Ð¼ÐµÐ½Ð°Ð¼Ð¸.ÐоддеÑжка доменов повеÑÑ ÑоÑÑавнÑÑ Ñипов (Том Ðейн)
Рдополнение к ÑÑÐ¾Ð¼Ñ ÑзÑки PL/Perl, PL/Python и PL/Tcl полÑÑили возможноÑÑÑ Ð¿ÑинимаÑÑ Ð°ÑгÑменÑÑ Ð¸ вÑдаваÑÑ ÑезÑлÑÑаÑÑ Ñ ÑоÑÑавнÑми доменнÑми Ñипами. Также ÑлÑÑÑена поддеÑжка доменнÑÑ Ñипов в PL/Python.
Ðобавление пÑиведений ÑкалÑÑов
JSONBк ÑиÑÐ»Ð¾Ð²Ð¾Ð¼Ñ Ð¸ логиÑеÑÐºÐ¾Ð¼Ñ ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ (ÐнаÑÑаÑÐ¸Ñ ÐÑбенникова)
E.50.3.5. ФÑнкÑии
РеализаÑÐ¸Ñ Ð²ÑÐµÑ Ð¾Ð¿Ð¸ÑаннÑÑ Ð² SQL:2011 ваÑианÑов опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñамки Ð´Ð»Ñ Ð¾ÐºÐ¾Ð½Ð½ÑÑ ÑÑнкÑий (ÐÐ»Ð¸Ð²ÐµÑ Ð¤Ð¾Ñд, Том Ðейн)
Ð Ñежиме
RANGEÑепеÑÑ Ð´Ð¾Ð¿ÑÑкаеÑÑÑ Ñказание вPRECEDINGиFOLLOWINGÑмеÑений Ð´Ð»Ñ Ð²ÑбоÑа ÑÑÑок Ñ Ð³ÑÑппиÑÑÑÑими знаÑениÑми плÑÑ/минÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ ÑмеÑение. ÐÑоме Ñого, бÑл добавлен ÑежимGROUPS, в коÑоÑом в ÑÐ°Ð¼ÐºÑ Ð²ÐºÐ»ÑÑаеÑÑÑ Ð¿Ð»ÑÑ/минÑÑ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ðµ ÑиÑло гÑÑпп ÑодÑÑвеннÑÑ ÑÑÑок. Также добавлен ÑинÑакÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ Ñамки Ñ Ð¸ÑклÑÑением.Ðобавление ÑемейÑÑва Ñ ÐµÑ-ÑÑнкÑий SHA-2 (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Рименно, бÑли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑÑнкÑии:
sha224(),sha256(),sha384()иsha512().Ðобавление поддеÑжки 64-биÑнÑÑ ÑÑнкÑий Ñ ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ· кÑипÑогÑаÑиÑеÑкой ÑÑойкоÑÑи (РобеÑÑ Ð¥Ð°Ð°Ñ, ÐмÑл СÑл)
ÐозможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð²
to_char()иto_timestamp()ÑмеÑÐµÐ½Ð¸Ñ ÑаÑового поÑÑа Ð¾Ñ UTC в ÑаÑÐ°Ñ Ð¸ минÑÑÐ°Ñ (ÐикиÑа ÐлÑÑ Ð¾Ð², ÐндÑÑ ÐÑнÑÑан)ÐÐ»Ñ ÑÑого пÑедназнаÑÐµÐ½Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑоÑмаÑа
TZHиTZM.Ðобавление ÑÑнкÑии ÑекÑÑового поиÑка
websearch_to_tsquery(), поддеÑживаÑÑей ÑинÑакÑÐ¸Ñ Ð·Ð°Ð¿ÑоÑов, подобнÑй пÑинÑÑÐ¾Ð¼Ñ Ð² поиÑковÑÑ ÑиÑÑÐµÐ¼Ð°Ñ Ð² ÐнÑеÑнеÑе (ÐикÑÐ¾Ñ ÐÑобнÑй, ÐмиÑÑий Ðванов)Ðобавление ÑÑнкÑий
json(b)_to_tsvector(), ÑоздаÑÑÐ¸Ñ Ð·Ð°Ð¿ÑÐ¾Ñ ÑекÑÑового поиÑка Ð´Ð»Ñ ÑооÑвеÑÑÑвÑÑÑÐ¸Ñ Ð·Ð½Ð°ÑенийJSON/JSONB(ÐмиÑÑий Ðолгов)
E.50.3.6. ЯзÑки пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑÑоÑоне ÑеÑвеÑа
РеализаÑÐ¸Ñ Ð¿ÑоÑедÑÑ Ð½Ð° ÑÑовне SQL, коÑоÑÑе могÑÑ Ð½Ð°ÑинаÑÑ Ð¸ ÑикÑиÑоваÑÑ ÑобÑÑвеннÑе ÑÑанзакÑии (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
ÐÐ»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ñ ÑанимÑÑ Ð¿ÑоÑедÑÑ Ð¿ÑедназнаÑена Ð½Ð¾Ð²Ð°Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
CREATE PROCEDURE, а Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ âCALLÐовÑе командÑ
ALTER/DROP ROUTINEпозволÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ/ÑдалÑÑÑ Ð²Ñе Ð²Ð¸Ð´Ñ Ð¾Ð±ÑекÑов-подпÑогÑамм, а именно пÑоÑедÑÑÑ, ÑÑнкÑии и агÑегаÑÑ.ÐÑоме Ñого, ÑепеÑÑ Ð·Ð°Ð¿Ð¸ÑÑ
FUNCTIONв командаÑCREATE OPERATORиCREATE TRIGGERпÑедпоÑÑиÑелÑнее, ÑемPROCEDURE, Ñак как Ñелевой обÑÐµÐºÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ бÑÑÑ ÑÑнкÑией, а не пÑоÑедÑÑой. Ðднако Ð´Ð»Ñ ÑовмеÑÑимоÑÑи ÑÑаÑÑй ÑинÑакÑÐ¸Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ.Ðобавление возможноÑÑей ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑанзакÑиÑми в ÑеÑвеÑнÑе ÑзÑки PL/pgSQL, PL/Perl, PL/Python, PL/Tcl и SPI (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
УпÑавление ÑÑанзакÑиÑми возможно ÑолÑко в пÑоÑедÑÑÐ°Ñ Ð½Ð° веÑÑ Ð½ÐµÐ¼ ÑÑовне ÑÑанзакÑий и вложеннÑÑ Ð±Ð»Ð¾ÐºÐ°Ñ
CALLиDO, коÑоÑÑе могÑÑ ÑодеÑжаÑÑ ÑолÑко дÑÑгие блокиCALLиDO.Ðобавление в PL/pgSQL возможноÑÑи обознаÑаÑÑ ÑÐ¸Ð¿Ñ Ð·Ð°Ð¿Ð¸Ñей ÑоÑÑавного Ñипа как не пÑинимаÑÑие NULL, поÑÑоÑннÑе, или имеÑÑие наÑалÑнÑе знаÑÐµÐ½Ð¸Ñ (Том Ðейн)
Ð PL/pgSQL добавлена обÑабоÑка изменений ÑоÑÑавнÑÑ Ñипов (напÑимеÑ, запиÑи, коÑÑежа), пÑоиÑÑ Ð¾Ð´ÑÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð¿ÐµÑвÑм и поÑледÑÑÑими вÑзовами ÑÑнкÑии в одном ÑеанÑе (Том Ðейн)
Ранее в ÑÐ°ÐºÐ¸Ñ Ð¾Ð±ÑÑоÑÑелÑÑÑÐ²Ð°Ñ Ð²ÑдавалиÑÑ Ð¾Ñибки.
Ðобавление ÑаÑÑиÑениÑ
jsonb_plpythonÐ´Ð»Ñ Ð¿ÑеобÑазованиÑJSONBв ÑÐ¸Ð¿Ñ PL/Python и в обÑаÑном напÑавлении (ÐнÑон ÐÑков)Ðобавление ÑаÑÑиÑениÑ
jsonb_plperlÐ´Ð»Ñ Ð¿ÑеобÑазованиÑJSONBв ÑÐ¸Ð¿Ñ PL/Perl и в обÑаÑном напÑавлении (ÐнÑон ÐÑков)
E.50.3.7. ÐлиенÑÑкие инÑеÑÑейÑÑ
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑжаÑие ÑепеÑÑ Ð¾ÑклÑÑено в libpq (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ð ÑовÑеменнÑÑ Ð²ÐµÑÑиÑÑ OpenSSL ÑжаÑие оÑклÑÑено, Ñак ÑÑо ÑооÑвеÑÑÑвÑÑÑий паÑамеÑÑ libpq в Ð½Ð¸Ñ ÑакÑиÑеÑки не дейÑÑвовал.
Ðобавление ÑказаниÑ
DO CONTINUEв ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ ecpgWHENEVER(ÐинаÑк Ðокале)ÐÑи ÑÑом генеÑиÑÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
continueÑзÑка C, пÑиводÑÑÐ°Ñ Ðº пеÑедаÑе ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð² наÑало Ñикла, ÑодеÑжаÑего Ñказанное ÑÑловие.Ðобавление в ecpg Ñежима обÑабоÑки ÑимволÑнÑÑ Ð¼Ð°ÑÑивов в ÑÑиле Oracle Pro*C.
ÐÑÐ¾Ñ Ñежим вклÑÑаеÑÑÑ ÐºÐ»ÑÑом
-C.
E.50.3.8. ÐлиенÑÑкие пÑиложениÑ
E.50.3.8.1. psql
Ðобавление в psql командÑ
\gdesc, вÑводÑÑей Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑÐ¸Ð¿Ñ ÑÑолбÑов в ÑезÑлÑÑаÑе запÑоÑа (Ðавел СÑÐµÑ Ñле)Ðобавление пеÑеменнÑÑ psql Ð´Ð»Ñ ÑпÑавление вÑводом оÑибок и дейÑÑвий запÑоÑов (ФабÑен ÐоÑлÑо)
Рименно, бÑли Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð¿ÐµÑеменнÑе:
ERROR,SQLSTATE,ROW_COUNT,LAST_ERROR_MESSAGEиLAST_ERROR_SQLSTATE.Ðобавление в psql возможноÑÑи пÑовеÑиÑÑ ÑÑÑеÑÑвование пеÑеменной (ФабÑен ÐоÑлÑо)
ÐÐ»Ñ Ð¿ÑовеÑки ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÐµÑеменной в опеÑаÑоÑе
\ifÑеализован ÑинÑакÑиÑ:{?имÑ_пеÑеменной}.Ðобавление пеÑеменной окÑÑжениÑ
PSQL_PAGERÐ´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑÑаниÑником в psql (Ðавел СÑÐµÑ Ñле)ÐÑа пеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð·Ð°Ð´Ð°ÑÑ Ð´Ð»Ñ psql поÑÑÑаниÑник по ÑмолÑаниÑ, оÑлиÑнÑй Ð¾Ñ Ð¿Ð¾ÑÑÑаниÑника, коÑоÑÑй вÑбÑан Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¿ÑогÑамм. ÐнаÑение
PAGERпо-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑвÑеÑ, еÑли пеÑеменнаÑPSQL_PAGERне опÑеделена.ÐезÑÑловное добавление инÑоÑмаÑии о ÑекÑиониÑовании в вÑвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql
\d+(ÐÐ¼Ð¸Ñ ÐангоÑе, ÐÑÑÑÐ¾Ñ ÐапаÑ)Ранее ÑÑа инÑоÑмаÑÐ¸Ñ Ð½Ðµ вÑводилаÑÑ Ð´Ð»Ñ ÑекÑиониÑованной ÑаблиÑÑ, в коÑоÑой не бÑло ÑекÑий. Также ÑепеÑÑ Ð¾Ð±Ð¾Ð·Ð½Ð°ÑаеÑÑÑ, какие ÑекÑии Ñами ÑвлÑÑÑÑÑ ÑекÑиониÑованнÑми.
ÐÑвод в psql пÑавилÑного имени полÑзоваÑÐµÐ»Ñ Ð¿Ñи запÑоÑе паÑÐ¾Ð»Ñ (Том Ðейн)
Ранее, когда Ð¸Ð¼Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ Ð·Ð°Ð´Ð°Ð²Ð°Ð»Ð¾ÑÑ Ð² адÑеÑе URI и одновÑеменно иÑполÑзовалÑÑ ÐºÐ»ÑÑ
-U, в пÑиглаÑении вÑдавалоÑÑ Ð½ÐµÐºÐ¾ÑÑекÑное имÑ. ТепеÑÑ Ñакже подавлÑеÑÑÑ Ð¸Ð¼Ñ Ð¿Ñи запÑоÑе паÑолÑ, когда ÑказÑваеÑÑÑ ÐºÐ»ÑÑ--password.ÐÑполнение вÑÑ Ð¾Ð´Ð° из psql пÑи вводе команд
quitиexit, когда в бÑÑеÑе ввода болÑÑе ниÑего Ð½ÐµÑ (ÐÑÑÑ ÐомджÑн)Ðобавление подÑказки о Ñом, как вÑйÑи из пÑогÑаммÑ, когда командÑ
quitиexitвводÑÑÑÑ Ð² оÑделÑной ÑÑÑоке пÑи непÑÑÑом бÑÑеÑе ввода. ÐÑа же инÑоÑмаÑÐ¸Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð° в ÑпÑÐ°Ð²ÐºÑ (help).Ðобавление в psql подÑказки об иÑполÑзовании Control-D, когда
\qвводиÑÑÑ Ð² оÑделÑной ÑÑÑоке, но пÑи ÑÑом игноÑиÑÑеÑÑÑ (ÐÑÑÑ ÐомджÑн)ÐапÑимеÑ, ввод
\qне пÑиведÑÑ Ðº вÑÑ Ð¾Ð´Ñ, еÑли ÑÑи ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ñ Ð²Ð½ÑÑÑи ÑекÑÑовой ÑÑÑоки.УлÑÑÑение Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑабÑлÑÑией Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
ALTER INDEX RESET/SET(ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада)Ðобавление в psql инÑÑаÑÑÑÑкÑÑÑÑ Ð´Ð»Ñ Ð°Ð´Ð°Ð¿ÑаÑии запÑоÑов, ÑÑебÑÑÑÐ¸Ñ ÑÑ Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑабÑлÑÑией, к веÑÑии ÑеÑвеÑа (Том Ðейн)
Ранее запÑоÑÑ, вÑполнÑемÑе Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð¼ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑабÑлÑÑией, могли не ÑабоÑаÑÑ Ð½Ð° ÑÑаÑÑÑ ÑеÑвеÑÐ°Ñ .
E.50.3.8.2. pgbench
Ðобавление в pgbench поддеÑжки вÑÑажений Ñ NULL, логиÑеÑкими знаÑениÑми, а Ñакже неÑколÑÐºÐ¸Ñ ÑÑнкÑий и опеÑаÑоÑов (ФабÑен ÐоÑлÑо)
Ðобавление ÑÑловий
\ifв pgbench (ФабÑен ÐоÑлÑо)ÐозможноÑÑÑ Ð¸ÑполÑзоваÑÑ Ð² Ð¸Ð¼ÐµÐ½Ð°Ñ Ð¿ÐµÑеменнÑÑ pgbench не ÑолÑко ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ASCII (ФабÑен ÐоÑлÑо)
Ðобавление в pgbench клÑÑа
--init-steps, позволÑÑÑего ÑпÑавлÑÑÑ ÑÑапами иниÑиализаÑии (ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада)Ðобавление в pgbench генеÑаÑоÑа ÑлÑÑайнÑÑ ÑиÑел Ñ ÑаÑпÑеделением, пÑиблизиÑелÑно ÑооÑвеÑÑÑвÑÑÑим Ð·Ð°ÐºÐ¾Ð½Ñ Ð¦Ð¸Ð¿Ñа (Ðлик Хилажев)
ÐозможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð·Ð°ÑÑавки Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑаÑоÑа ÑлÑÑайнÑÑ ÑиÑел в pgbench (ФабÑен ÐоÑлÑо)
Ðобавление в pgbench ÑÑнкÑий
pow()иpower()Ð´Ð»Ñ Ð²Ð¾Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð² ÑÑÐµÐ¿ÐµÐ½Ñ (РаÑл ÐаÑин РодÑигеÑ)Ðобавление в pgbench ÑÑнкÑий Ñ ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (ÐлÑÐ´Ð°Ñ ÐÑÑин)
УлÑÑÑение ÑоÑноÑÑи ÑÑаÑиÑÑики pgbench пÑи иÑполÑзовании паÑамеÑÑов
--latency-limitи--rate(ФабÑен ÐоÑлÑо)
E.50.3.9. СеÑвеÑнÑе пÑиложениÑ
Ðобавление в pg_basebackup паÑамеÑÑа Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑлоÑа ÑепликаÑии Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñм именем (ÐÐ¸Ñ Ð°ÑÐ»Ñ Ðанк)
С клÑÑом
--create-slotбÑÐ´ÐµÑ ÑоздаваÑÑÑÑ ÑÐ»Ð¾Ñ ÑепликаÑии (Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼, заданнÑм клÑÑом--slot), когда иÑполÑзÑеÑÑÑ Ð¼ÐµÑод поÑоковой ÑÑанÑлÑÑии WAL (--wal-method=stream).ÐозможноÑÑÑ ÑазÑеÑÐµÐ½Ð¸Ñ Ð² initdb доÑÑÑпа гÑÑÐ¿Ð¿Ñ Ðº каÑÐ°Ð»Ð¾Ð³Ñ Ð´Ð°Ð½Ð½ÑÑ (ÐÑвид СÑил)
ÐÐ»Ñ ÑÑого пÑедназнаÑен добавленнÑй клÑÑ initdb
--allow-group-access. ÐдминиÑÑÑаÑоÑÑ Ñакже могÑÑ ÑÑÑановиÑÑ ÑазÑеÑÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð³ÑÑÐ¿Ð¿Ñ Ð² пÑÑÑом каÑалоге даннÑÑ Ð´Ð¾ запÑÑка initdb. УзнаÑÑ, ÑазÑеÑено ли гÑÑппе ÑÑение в каÑалоге даннÑÑ , позволÑÐµÑ ÑеÑвеÑÐ½Ð°Ñ Ð¿ÐµÑеменнаÑdata_directory_mode.Ðобавление ÑÑилиÑÑ pg_verify_checksums Ð´Ð»Ñ Ð¿ÑовеÑки конÑÑолÑнÑÑ ÑÑмм Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² оÑклÑÑÑнном ÑоÑÑоÑнии (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
ÐозможноÑÑÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð² pg_resetwal ÑÐ°Ð·Ð¼ÐµÑ ÑегменÑа WAL Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ»ÑÑа
--wal-segsize(ÐаÑан ÐоÑÑаÑÑ)Ðобавление длиннÑÑ Ð¿Ð°ÑамеÑÑов в pg_resetwal и pg_controldata (ÐаÑан ÐоÑÑаÑÑ, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ðобавление в pg_receivewal клÑÑа
--no-sync, оÑклÑÑаÑÑего ÑÐ¸Ð½Ñ ÑоннÑÑ Ð·Ð°Ð¿Ð¸ÑÑ WAL в ÑелÑÑ ÑеÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (ÐикаÑÐ»Ñ ÐакÑе)Ðобавление в pg_receivewal клÑÑа
--endpos, ÑказÑваÑÑего, когда нÑжно оÑÑановиÑÑ Ð¿ÑиÑм WAL (ÐикаÑÐ»Ñ ÐакÑе)ÐклÑÑение в pg_ctl возможноÑÑи поÑÑлаÑÑ Ð¿ÑоÑеÑÑам ÑигналÑ
SIGKILL(ÐндÑÐµÑ Ð¤Ñойнд)Ранее ÑÑа возможноÑÑÑ Ð½Ðµ поддеÑживалаÑÑ Ð¸Ð·-за опаÑений поÑенÑиалÑнÑÑ Ð·Ð»Ð¾ÑпоÑÑеблений ей.
УменÑÑение ÑиÑла Ñайлов, копиÑÑемÑÑ ÑÑилиÑой pg_rewind (ÐикаÑÐ»Ñ ÐакÑе)
ÐедопÑÑение запÑÑка pg_rewind Ð¾Ñ Ð¸Ð¼ÐµÐ½Ð¸
root(ÐикаÑÐ»Ñ ÐакÑе)
E.50.3.9.1. pg_dump, pg_dumpall, pg_restore
Ðобавление в pg_dumpall клÑÑа
--encodingÐ´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñводом Ñказаний кодиÑовок (ÐикаÑÐ»Ñ ÐакÑе)Ð pg_dump ÑÑÐ¾Ñ ÐºÐ»ÑÑ Ñже бÑл ÑанÑÑе.
Ðобавление в pg_dump клÑÑа
--load-via-partition-root, ÑказÑваÑÑего, ÑÑо даннÑе Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð³ÑÑжаÑÑÑÑ Ð² коÑневÑÑ ÑаблиÑÑ ÑекÑиониÑованиÑ, а не в иÑÑ Ð¾Ð´Ð½ÑÑ ÑекÑÐ¸Ñ (Ð ÑÑаб ÐаÑиа)ÐÑо полезно, еÑли в Ñелевой ÑиÑÑеме окажÑÑÑÑ Ð´ÑÑгие пÑавила ÑоÑÑиÑовки или поÑÑдок байÑов, пÑи коÑоÑÑÑ Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑÑебоваÑÑÑÑ Ð¿Ð¾Ð¼ÐµÑÑиÑÑ ÑÑÑоки в ÑекÑии, оÑлиÑнÑе Ð¾Ñ Ð¿ÑÐµÐ¶Ð½Ð¸Ñ .
Ðобавление клÑÑа Ð´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ð²ÑгÑÑзки и воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑиев обÑекÑа Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ (Ð Ð¾Ð±Ð¸Ð½Ñ Ð¢Ð°Ñакан)
ÐовÑй клÑÑ ÑÑÐ¸Ð»Ð¸Ñ pg_dump, pg_dumpall и pg_restore назÑваеÑÑÑ
--no-comments.
E.50.3.10. ÐÑÑ Ð¾Ð´Ð½Ñй код
Ðобавление в PGXS возможноÑÑи ÑÑÑанавливаÑÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²Ð¾ÑнÑе ÑÐ°Ð¹Ð»Ñ (ÐндÑÑ ÐиÑÑ)
ÐÑо позволÑÐµÑ ÑоздаваÑÑ Ð¼Ð¾Ð´Ñли ÑаÑÑиÑений, завиÑÑÑие Ð¾Ñ Ð´ÑÑÐ³Ð¸Ñ Ð¼Ð¾Ð´Ñлей. Ранее Ð´Ð»Ñ Ð·Ð°Ð²Ð¸Ñимого модÑÐ»Ñ Ð½Ðµ бÑло пÑоÑÑой возможноÑÑи найÑи заголовоÑнÑе ÑÐ°Ð¹Ð»Ñ Ð½Ñжного ÐµÐ¼Ñ Ð¼Ð¾Ð´ÑлÑ. Также бÑл ÑкоÑÑекÑиÑован ÑÑд ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¼Ð¾Ð´Ñлей в
contrib, опÑеделÑÑÑÐ¸Ñ ÑÐ¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ , ÑÑÐ¾Ð±Ñ Ð¿Ñи Ð¸Ñ ÑÑÑановке ÑÑÑанавливалиÑÑ Ð¸ ÑооÑвеÑÑÑвÑÑÑие заголовки. ÐÑоме Ñого, ÑеализаÑии PL/Perl и PL/Python ÑепеÑÑ ÑÑÑанавливаÑÑ Ñвои заголовоÑнÑе ÑÐ°Ð¹Ð»Ñ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð´Ñлей пÑеобÑÐ°Ð·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÑÑÐ¸Ñ ÑзÑков.УÑÑановка Ñайла
errcodes.txtпÑи инÑÑаллÑÑии, ÑÑо позволÑÐµÑ ÑаÑÑиÑениÑм полÑÑаÑÑ ÑпиÑок кодов оÑибок, извеÑÑнÑÑ Ð² PostgreSQL (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)ÐÑеобÑазование докÑменÑаÑии в ÑоÑÐ¼Ð°Ñ DocBook XML (ÐиÑÐµÑ ÐйзенÑÑаÑÑ, ÐлекÑÐ°Ð½Ð´Ñ ÐÐ°Ñ Ð¸Ð½, ЮÑген ÐÑÑÑÑ)
Ðмена Ñайлов по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¸Ð¼ÐµÑÑ ÑаÑÑиÑение
sgmlÐ´Ð»Ñ ÑовмеÑÑимоÑÑи Ñ Ð²ÐµÑвÑми ÑÑаÑÑÑ Ð²ÐµÑÑий.ÐÑполÑзование опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñипа
boolизstdbool.hÑам, где ÑÑо возможно, Ñо еÑÑÑ Ð½Ð° подавлÑÑÑем болÑÑинÑÑве плаÑÑоÑм (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Тем ÑамÑм ÑÑÑÑÐ°Ð½ÐµÐ½Ñ ÑÑÑдноÑÑи, ÑвÑзаннÑе Ñ Ð½Ð°Ð¿Ð¸Ñанием модÑлей ÑаÑÑиÑений, в иÑÑ Ð¾Ð´Ð½Ñй код коÑоÑÑÑ ÑÑебовалоÑÑ Ð²ÐºÐ»ÑÑиÑÑ
stdbool.h.ÐаÑдиналÑное изменение ÑпоÑоба опиÑÐ°Ð½Ð¸Ñ Ð½Ð°ÑалÑнÑÑ ÑиÑÑемнÑÑ ÐºÐ°Ñалогов (Ðжон ÐейлоÑ)
ТепеÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ñе даннÑе пÑедÑÑавлÑÑÑÑÑ Ð² ÑÑÑÑкÑÑÑÐ°Ñ Perl, ÑÑо знаÑиÑелÑно ÑпÑоÑÐ°ÐµÑ Ð¼ÐµÑ Ð°Ð½Ð¸ÑеÑкÑÑ ÑабоÑÑ Ñ Ð½Ð¸Ð¼Ð¸.
ÐедопÑÑение ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑаÑÑиÑениÑми ÑобÑÑвеннÑÑ ÑеÑвеÑнÑÑ Ð¿Ð°ÑамеÑÑов, пÑинимаÑÑÐ¸Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð² виде ÑпиÑка в кавÑÑÐºÐ°Ñ (Том Ðейн)
СейÑÐ°Ñ Ð½ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑÑо поддеÑживаÑÑ, Ñак как об ÑÑом ÑвойÑÑве паÑамеÑÑа Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ знаÑÑ Ð´Ð¾ Ñого, как ÑаÑÑиÑение бÑÐ´ÐµÑ Ð·Ð°Ð³ÑÑжено.
Ðобавление возможноÑÑи пÑименÑÑÑ ÑвÑзÑвание каналов пÑи иÑполÑзовании аÑÑенÑиÑикаÑии SCRAM (ÐикаÑÐ»Ñ ÐакÑе)
СвÑзÑвание каналов пÑедназнаÑено Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð°Ñак поÑÑедника; SCRAM Ñам по Ñебе не обеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑакÑÑ Ð·Ð°ÑиÑÑ â ÑвÑзÑвание Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вклÑÑаÑÑ Ñвно. Ð ÑожалениÑ, libpq не позволÑÐµÑ ÑÑо ÑделаÑÑ. ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑжка ожидаеÑÑÑ Ð² бÑдÑÑÐ¸Ñ Ð²ÐµÑÑиÑÑ libpq и в инÑеÑÑейÑÐ°Ñ , поÑÑÑоеннÑÑ Ð½Ðµ на базе libpq, напÑимеÑ, в JDBC.
ÐÑедоÑÑавление ÑоновÑм иÑполниÑелÑм возможноÑÑи подклÑÑÐµÐ½Ð¸Ñ Ðº базам даннÑÑ , коÑоÑÑе обÑÑно не допÑÑкаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
ÐоддеÑжка аппаÑаÑного вÑÑиÑÐ»ÐµÐ½Ð¸Ñ CRC на плаÑÑоÑме ARMv8 (Юки ÐÑ, Хейкки ÐиннакангаÑ, Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)
УÑкоÑение поиÑка вÑÑÑоеннÑÑ ÑÑнкÑий по OID (ÐндÑÐµÑ Ð¤Ñойнд)
ТепеÑÑ Ð²Ð¼ÐµÑÑо двоиÑного поиÑка иÑполÑзÑеÑÑÑ Ð¼Ð°ÑÑив индекÑов.
УÑкоÑение ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑезÑлÑÑаÑов запÑоÑа (ÐндÑÐµÑ Ð¤Ñойнд)
УвелиÑение ÑкоÑоÑÑи доÑÑÑпа к кеÑам ÑиÑÑÐµÐ¼Ñ (ÐндÑÐµÑ Ð¤Ñойнд)
Ðобавление Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑÑÑ, поÑÑÑоенного на модели поколений, опÑимизиÑованной Ð´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑного вÑделениÑ/оÑÐ²Ð¾Ð±Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ Ð±Ð»Ð¾ÐºÐ¾Ð² (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)
С новÑм Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ð¼ ÑменÑÑаеÑÑÑ Ð¿Ð¾ÑÑебление памÑÑи пÑи логиÑеÑком декодиÑовании.
СоглаÑование вÑÑиÑлениÑ
pg_class.reltuplesпÑиVACUUMÑ Ð²ÑÑиÑлением ÑÑого же знаÑÐµÐ½Ð¸Ñ Ð¿Ñи вÑполненииANALYZE(Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)ÐеÑÐµÑ Ð¾Ð´ к иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ новой веÑÑии perltidy,
20170521(Том Ðейн, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
E.50.3.11. ÐополниÑелÑнÑе модÑли
Ð ÑаÑÑиÑение
pg_prewarmдобавлена возможноÑÑÑ Ð²Ð¾ÑÑÑанавливаÑÑ Ð¿ÑедÑдÑÑее ÑодеÑжимое обÑего бÑÑеÑа пÑи запÑÑке (ÐиÑÑ Ñн Сай, РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÐ»Ñ ÑÑого инÑоÑмаÑÐ¸Ñ Ð¾Ð± оÑноÑениÑÑ Ð¸ номеÑÐ°Ñ Ð±Ð»Ð¾ÐºÐ¾Ð², наблÑдаемÑÑ Ð² обÑем бÑÑеÑе,
pg_prewarmпеÑиодиÑеÑки ÑÐ¾Ñ ÑанÑÐµÑ Ð½Ð° диÑк во вÑÐµÐ¼Ñ ÑабоÑÑ Ð¸ пÑи оÑклÑÑении ÑеÑвеÑа.Ðобавление в
pg_trgmÑÑнкÑииstrict_word_similarity()Ð´Ð»Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑÑ Ð¾Ð¶ÐµÑÑи ÑелÑÑ Ñлов (ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков)ÐÐ»Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð¾Ð¹ Ñели Ñже ÑÑÑеÑÑвовала ÑÑнкÑиÑ
word_similarity(), но она бÑла пÑедназнаÑена Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка ÑÑ Ð¾Ð¶Ð¸Ñ ÑаÑÑей Ñлов, Ñогда какstrict_word_similarity()вÑÑиÑлÑÐµÑ ÑÑ Ð¾Ð¶ÐµÑÑÑ ÑелÑÑ Ñлов.ÐозможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов
btree_ginпо знаÑениÑм Ñипов даннÑÑbool,bpchar,nameиuuid(ÐаÑеÑÑ ÐливейÑа)ÐозможноÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑаÑÑиÑениÑми
cubeиsegÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑолÑко индекÑа пÑи иÑполÑзовании индекÑов GiST (ÐндÑей ÐоÑодин)РеализаÑÐ¸Ñ Ð¸Ð·Ð²Ð»ÐµÑÐµÐ½Ð¸Ñ Ð¾ÑÑиÑаÑелÑнÑÑ ÐºÐ¾Ð¾ÑÐ´Ð¸Ð½Ð°Ñ ÐºÑба опеÑаÑоÑом
~>(ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков)ÐÑо полезно Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка kNN-GiST, когда нÑжно вÑбÑаÑÑ ÐºÐ¾Ð¾ÑдинаÑÑ Ð² возÑаÑÑаÑÑем поÑÑдке.
ÐбÑабоÑка бÑкв вÑеÑнамÑкого ÑзÑка в ÑаÑÑиÑении
unaccent(Ðан Ðин Ð¥Ñонг, ÐикаÑÐ»Ñ ÐакÑе)Ðобавление в
amcheckпÑовеÑки налиÑÐ¸Ñ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ коÑÑежа в кÑÑе ÑооÑвеÑÑÑвÑÑÑей запиÑи в индекÑе (ÐиÑÐµÑ Ðейган)ÐеÑÐµÑ Ð¾Ð´ в модÑле
adminpackк иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²ÑÑ ÑÑандаÑÑнÑÑ Ñолей Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к Ñайловой ÑиÑÑеме (СÑивен ФÑоÑÑ)Ранее ÑÑнкÑии
adminpackмогли вÑзÑваÑÑ ÑолÑко админиÑÑÑаÑоÑÑ, ÑепеÑÑ Ð¿ÑовеÑÑÑÑÑÑ ÑазÑеÑÐµÐ½Ð¸Ñ Ñолей.РаÑÑиÑение иденÑиÑикаÑоÑа запÑоÑа в
pg_stat_statementдо 64 Ð±Ð¸Ñ (РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÑо знаÑиÑелÑно ÑокÑаÑÐ°ÐµÑ Ð²ÐµÑоÑÑноÑÑÑ Ñовпадений Ñ ÐµÑа Ð´Ð»Ñ ÑазнÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑов запÑоÑов. ТепеÑÑ ÑÑи иденÑиÑикаÑоÑÑ Ð¼Ð¾Ð³ÑÑ Ð¾ÑобÑажаÑÑÑÑ Ð¸ в виде оÑÑиÑаÑелÑнÑÑ ÑиÑел.
Удаление ÑкÑипÑов
contrib/start-scripts/osx, Ñак как иÑполÑзоваÑÑ Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ не ÑекомендÑеÑÑÑ (вмеÑÑо Ð½Ð¸Ñ ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑcontrib/start-scripts/macos) (Том Ðейн)Удаление ÑаÑÑиÑениÑ
chkpass(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑо ÑаÑÑиÑение более не ÑÑиÑаеÑÑÑ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñм ÑÑедÑÑвом безопаÑноÑÑи и пÑимеÑом напиÑÐ°Ð½Ð¸Ñ ÑаÑÑиÑениÑ.
E.50.4. ÐлагодаÑÑÑвеннÑй ÑпиÑок
ÐеÑеÑиÑленнÑе ниже (в алÑавиÑном поÑÑдке) лиÑа Ñделали вклад в ÑÑÐ¾Ñ Ð²ÑпÑÑк, ÑазÑабаÑÑваÑ, ÑовеÑÑенÑÑвÑÑ Ð¸ ÑеÑензиÑÑÑ ÐºÐ¾Ð´, пÑÐ¸Ð½Ð¸Ð¼Ð°Ñ Ð¿Ñавки, пÑÐ¾Ð²Ð¾Ð´Ñ ÑеÑÑиÑование или ÑообÑÐ°Ñ Ð¾ пÑÐ¾Ð±Ð»ÐµÐ¼Ð°Ñ .
| ÐÐ±Ñ Ð¸Ð´Ð¶Ð¸Ñ Ðенон-Сен (Abhijit Menon-Sen) |
| Ðдам ÐеланÑÑкий (Adam Bielanski) |
| Ðдам ÐÑайÑвелл (Adam Brightwell) |
| Ðдам ÐÑÑÑÑелÑбек (Adam Brusselback) |
| ÐдиÑÑÑ Ð¢Ð¾Ñнивал (Aditya Toshniwal) |
| ÐдÑиан ÐÑÐºÐ¾Ð¼Ñ (Adrián Escoms) |
| ÐдÑиен ÐайÑÐ°Ñ (Adrien Nayrat) |
| ÐÐºÐ¾Ñ ÐандÑа (Akos Vandra) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐлекÑеев (Aleksander Alekseev) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков (Alexander Korotkov) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐÑзÑменков (Alexander Kuzmenkov) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐÑкÑÑкин (Alexander Kukushkin) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐÐ°Ñ Ð¸Ð½ (Alexander Lakhin) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐаÑÑÑнов (Aleksandr Parfenov) |
| ÐлекÑандÑе ÐаÑÑÐ¸Ñ (Alexandre Garcia) |
| ÐлекÑей ÐаÑÑанов (Alexey Bashtanov) |
| ÐлекÑей ÐÑÑÑков (Alexey Kryuchkov) |
| ÐлекÑей ЧеÑнÑÑов (Alexey Chernyshov) |
| Ðлик Хилажев (Alik Khilazhev) |
| ÐлÑваÑо ÐÑÑеÑа (Ãlvaro Herrera) |
| ÐÐ¼Ð¸Ñ Ðапила (Amit Kapila) |
| ÐÐ¼Ð¸Ñ ÐангоÑе (Amit Langote) |
| ÐÐ¼Ð¸Ñ Ð¥Ð°Ð½Ð´ÐµÐºÐ°Ñ (Amit Khandekar) |
| ÐмÑл СÑл (Amul Sul) |
| ÐнаÑÑаÑÐ¸Ñ ÐÑбенникова (Anastasia Lubennikova) |
| ÐндÑе ÐÐµÐ½Ð·ÐµÐ»Ñ (André Hänsel) |
| ÐндÑÐµÐ°Ñ ÐÐ¶Ð¾Ð·ÐµÑ ÐÑог (Andreas Joseph Krogh) |
| ÐндÑÐµÐ°Ñ ÐелÑÑенÑÐµÐ¹Ñ (Andreas Seltenreich) |
| ÐндÑÐµÐ°Ñ ÐаÑлÑÑон (Andreas Karlsson) |
| ÐндÑей ÐоÑодин (Andrey Borodin) |
| ÐндÑей ÐоÑиÑа (Andrei Gorita) |
| ÐндÑей ÐÑаÑиÑков (Andrew Krasichkov) |
| ÐндÑей Ðизенко (Andrey Lizenko) |
| ÐндÑÐµÑ Ð¤Ñойнд (Andres Freund) |
| ÐнÑон ÐÑков (Anthony Bykov) |
| ÐнÑон ÐÐ¸Ð³Ð½Ð¾Ñ (Anton Dignös) |
| ÐнÑонин ХоÑÑка (Antonin Houska) |
| ÐнÑÑан Семама (Antoine Scemama) |
| ÐÑÑений ШаÑоглазов (Arseniy Sharoglazov) |
| ÐÑÑений Ð¨ÐµÑ (Arseny Sher) |
| ÐÑÑÑÑ ÐакиÑов (Artur Zakirov) |
| ÐÑим ÐÑавин (Asim Praveen) |
| ÐÑÑÑÑи ТоÑикоÑи (Atsushi Torikoshi) |
| ÐÑвин ÐгÑавал (Ashwin Agrawal) |
| ÐÑÑÑÐ¾Ñ ÐÐ°Ð¿Ð°Ñ (Ashutosh Bapat) |
| ÐÑÑÑÐ¾Ñ Ð¨Ð°Ñма (Ashutosh Sharma) |
| ÐадÑÑл ЧоÑÐ´Ñ ÑÑи (Badrul Chowdhury) |
| Ðалаж СилÑаи (Balazs Szilfai) |
| Ðейзил ÐÑÑк (Basil Bourque) |
| Ðен Ð§Ð¾Ð±Ð¾Ñ (Ben Chobot) |
| Ðенджамин ÐÑÑÑ (Benjamin Coutu) |
| ÐеÑнд Хелмле (Bernd Helmle) |
| Ðина ÐмеÑÑон (Beena Emerson) |
| Ðлаз ÐеÑела (Blaz Merela) |
| ÐÑайан ÐлоÑÑе (Brian Cloutier) |
| ÐÑÐµÐ½Ñ ÐеÑÑ (Brent Dearth) |
| ÐÑÑд Ðейонг (Brad DeJong) |
| ÐÑÑÑ ÐомджÑн (Bruce Momjian) |
| ÐайÑнави ÐÑабакаÑан (Vaishnavi Prabakaran) |
| ÐаÑÑÐ½Ð´Ð°Ñ ÐоддапаÑи (Vasundhar Boddapati) |
| Ðик ФиÑинг (Vik Fearing) |
| ÐикÑÐ¾Ñ ÐÐ°Ð³Ð½ÐµÑ (Victor Wagner) |
| ÐикÑÐ¾Ñ ÐÑобнÑй (Victor Drobny) |
| ÐикÑÐ¾Ñ ÐгоÑов (Victor Yegorov) |
| ÐинаÑк Ðокале (Vinayak Pokale) |
| ÐинÑÐµÐ½Ñ ÐаÑенал (Vincent Lachenal) |
| ÐиÑалий ÐÑÑовой (Vitaly Burovoy) |
| ÐиÑалий ÐаÑнаÑÐµÐ²Ð¸Ñ (Vitaliy Garnashevich) |
| ÐÐ»Ð°Ð´Ð¸Ð¼Ð¸Ñ ÐаÑанов (Vladimir Baranoff) |
| Ðао ЦзÑнÑи (Gao Zengqi) |
| Ðо СÑн Ð¢Ð°Ð½Ñ (Guo Xiang Tan) |
| ÐÑег СÑаÑк (Greg Stark) |
| ÐÑннлаÑгÑÑ Ð¢Ð¾Ñ ÐÑием (Gunnlaugur Thor Briem) |
| Ðавид ÐеÑейÑо ÐагаÑÐµÑ (David Pereiro Lagares) |
| Ðавид ФеÑÑÐµÑ (David Fetter) |
| Ðаг ÐÑл (Doug Doole) |
| Ðаг Ð Ñди (Doug Rady) |
| ÐагÑинн ÐлÑмаÑи ÐаннÑÐ°ÐºÐµÑ (Dagfinn Ilmari MannsÃ¥ker) |
| Ðан Ðианелло (Dan Vianello) |
| Ðан Ðин Ð¥Ñонг |
| ÐÐ°Ð½Ð¸ÐµÐ»Ñ ÐеÑÑеÑман (Daniel Westermann) |
| ÐÐ°Ð½Ð¸ÐµÐ»Ñ ÐÑд (Daniel Wood) |
| ÐаниÑÐ»Ñ ÐеÑиÑе (Daniel Vérité) |
| ÐаниÑÐ»Ñ ÐÑÑÑаÑÑÑон (Daniel Gustafsson) |
| Ðейв ÐÑÐ°Ð¼ÐµÑ (Dave Cramer) |
| Ðейв Ðейдж (Dave Page) |
| Ðжанни Чиолли (Gianni Ciolli) |
| ÐжаÑÑин ÐÑизби (Justin Pryzby) |
| Ðжейкоб Чемпион (Jacob Champion) |
| ÐжеÑеми ФинÑÐµÐ»Ñ (Jeremy Finzel) |
| ÐжеÑеми Ð¨Ð½Ð°Ð¹Ð´ÐµÑ (Jeremy Schneider) |
| ÐжеÑеми ÐÐ²Ð°Ð½Ñ (Jeremy Evans) |
| ÐжеÑÐ¿ÐµÑ ÐедеÑÑен (Jesper Pedersen) |
| ÐжеÑÑ ÐÐµÐ²Ð¸Ñ (Jeff Davis) |
| ÐжеÑÑ ÐÐ¶ÐµÐ¹Ð½Ñ (Jeff Janes) |
| Ðживан ÐÐ°Ð´Ñ Ðµ (Jeevan Ladhe) |
| Ðживан Чок (Jeevan Chalke) |
| Ðжим ÐÑÑби (Jim Nasby) |
| Ðжимми Ðи (Jimmy Yih) |
| Ðжо Ðонвей (Joe Conway) |
| Ðжон ÐолÑÑкий (Jon Wolski) |
| Ðжон ÐоÑман (John Gorman) |
| Ðжон ÐÐµÐ¹Ð»Ð¾Ñ (John Naylor) |
| ÐжонаÑан Ðллен (Jonathan Allen) |
| ÐжонаÑан С. ÐÐ°Ñ (Jonathan S. Katz) |
| Ðиан Фей (Dian Fay) |
| Ðилип ÐÑÐ¼Ð°Ñ (Dilip Kumar) |
| Ðин РаÑид (Dean Rasheed) |
| ÐмиÑÑий Ðолгов (Dmitry Dolgov) |
| ÐмиÑÑий Ðванов (Dmitry Ivanov) |
| ÐмиÑÑий СаÑаÑанников (Dmitriy Sarafannikov) |
| ÐмиÑÑий ШалаÑов (Dmitry Shalashov) |
| Ðон ÐÐµÐ¹Ð»ÐµÑ (Don Seiler) |
| ÐоÑоÑей ÐÑолеÑковÑкий (Darafei Praliaskouski) |
| ÐÑви ÐаÑадо (Davy Machado) |
| ÐÑвид ÐиндеÑман (David Binderman) |
| ÐÑвид ÐÑлд (David Gould) |
| ÐÑвид Ðж. ÐжонÑÑон (David G. Johnston) |
| ÐÑвид ÐаÑлÑе (David Carlier) |
| ÐÑвид РоÑли (David Rowley) |
| ÐÑвид Ð ÑÐ¹Ð´ÐµÑ (David Rader) |
| ÐÑвид СÑил (David Steele) |
| ÐÑвид Ð¥Ð¸Ð½ÐºÐ»Ñ (David Hinkle) |
| ÐÑн ÐаÑÑон (Dan Watson) |
| Ðан-ÐÑÐµÑ ÐелÑÑÑе (Jean-Pierre Pelletier) |
| Ðобен ÐвгÑÑÑин (Jobin Augustine) |
| ÐÑлÑен Ð Ñо (Julien Rouhaud) |
| Ð ÐÑÐ½Ñ Ðон (Yi Wen Wong) |
| Ðв ÐеÑген (Yves Goergen) |
| ÐгоÑÑ ÐоÑÐ¾Ñ (Igor Korot) |
| ÐгоÑÑ Ðейман (Igor Neyman) |
| ÐлÑÐ´Ð°Ñ ÐÑÑин (Ildar Musin) |
| ÐлÑдÑÑ ÐÑÑбангалиев (Ildus Kurbangaliev) |
| ÐÐ¾Ð·ÐµÑ Ðим (Ioseph Kim) |
| Ðон ÐелÑÑон (Jon Nelson) |
| ÐоÑик ÐеÑеÑÑ (Yorick Peterse) |
| Ðа ÐгÑен (Kha Nguyen) |
| ÐайÐай ÐÐ¾Ñ Ñй (KaiGai Kohei) |
| Ðайл СамÑон (Kyle Samson) |
| ÐайÑин Чен (Kaiting Chen) |
| ÐаÑл ÐÐµÑ ÐµÐ½Ð±Ð°ÑÑÑ (Karl Lehenbauer) |
| ÐаÑалин Якоб (Catalin Iacob) |
| Ðевин ÐÐ»Ð¾Ñ (Kevin Bloch) |
| Ðим РоÑе ÐаÑлÑен (Kim Rose Carlsen) |
| ÐÐ¸Ñ Ð¤Ð¸Ñке (Keith Fiske) |
| ÐлаÑдио ФÑейÑе (Claudio Freire) |
| ÐлейÑон Салем (Clayton Salem) |
| ÐонÑÑанÑин Ðнижник (Konstantin Knizhnik) |
| ÐÑейг Ð Ð¸Ð½Ð³ÐµÑ (Craig Ringer) |
| ÐÑиÑÑиан ÐÑÑа (Christian Duta) |
| ÐÑиÑÑиан УлÑÑÐ¸Ñ (Christian Ullrich) |
| ÐÑиÑÑÐ¾Ñ ÐеÑг (Christoph Berg) |
| ÐÑиÑÑÐ¾Ñ ÐÑÐµÐ¹Ñ (Christoph Dreis) |
| ÐÑиÑÑÐ¾Ñ ÐÑÑÑÑа (Christophe Courtois) |
| ÐÑиÑÑоÑÐµÑ ÐÐ¶Ð¾Ð½Ñ (Christopher Jones) |
| ÐÑнÑал ÐÑ Ð¾Ñ (Kuntal Ghosh) |
| ÐÑÑÐ»Ñ Ð§Ð¶Ð¾ (QL Zhuo) |
| ÐÑÑаÑо ХоÑигÑÑи (Kyotaro Horiguchi) |
| ÐаÑÑ ÐÐ°Ð½Ð¸Ñ (Lars Kanis) |
| ÐаÑÑÐµÐ½Ñ ÐлÑбе (Laurenz Albe) |
| ÐеонаÑдо Чекки (Leonardo Cecchi) |
| ÐеÑиÑÐ¸Ñ ÐвÑо (Lætitia Avrot) |
| ÐиÑÐ¸Ð°Ð½Ñ Ð¦Ð·Ð¾Ñ (Lixian Zou) |
| Ðлойд ÐлÑбин (Lloyd Albin) |
| ÐÑка ФеÑÑаÑи (Luca Ferrari) |
| ÐÑÐºÐ°Ñ Ð¤Ð¸ÑÑл (Lukas Fittl) |
| ÐÑÐºÐ°Ñ Ð¤ÑйÑÑайлд (Lucas Fairchild) |
| ÐÑÐºÐ°Ñ ÐÐ´ÐµÑ (Lukas Eder) |
| ÐÑдмила ÐанÑÑова (Liudmila Mantrova) |
| ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ (Magnus Hagander) |
| Ðай ÐÑн (Mai Peng) |
| Ðайк ÐлÑквелл (Mike Blackwell) |
| ÐакÑим ÐогÑк (Maksym Boguk) |
| ÐакÑим ÐилÑÑин (Maksim Milyutin) |
| ÐанÑÑÑ Ðалиев (Mansur Galiev) |
| ÐаÑина ÐолÑкова (Marina Polyakova) |
| ÐаÑио де ФÑÑÑÐ¾Ñ ÐÐ¸ÐµÐ³ÐµÑ (Mario de Frutos Dieguez) |
| ÐаÑк ÐÑд (Mark Wood) |
| ÐаÑк ÐÐ¸Ð»Ð³ÐµÑ (Marc Dilger) |
| ÐаÑк ÐÐ¸Ð»Ð³ÐµÑ (Mark Dilger) |
| ÐаÑк Ðейв-Ðйланд (Mark Cave-Ayland) |
| ÐаÑко ÐенÑаÑини (Marco Nenciarini) |
| ÐаÑко Ð¢Ð¸Ð¸ÐºÐºÐ°Ñ (Marko Tiikkaja) |
| ÐаÑкÑÑ Ðинанд (Markus Winand) |
| ÐаÑÑин ÐаÑÐºÐµÑ (MartÃn Marqués) |
| ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада (Masahiko Sawada) |
| ÐаÑеÑÑ ÐливейÑа (Matheus Oliveira) |
| ÐеÑин ÐоÑÐ»Ñ (Metin Doslu) |
| ÐикаÑÐ»Ñ ÐакÑе (Michael Paquier) |
| Ðин-ЦÑÐ°Ð½Ñ Ð¢Ñан (Minh-Quan Tran) |
| ÐиÑÑ Ñн Сай (Mithun Cy) |
| ÐÐ¸Ñ Ð°Ð¸Ð» Ðиколаев (Michail Nikolaev) |
| ÐÐ¸Ñ Ð°ÑÐ»Ñ Ðанк (Michael Banck) |
| ÐÐ¸Ñ Ð°ÑÐ»Ñ ÐеÑÐºÐµÑ (Michael Meskes) |
| ÐоÑган ÐÑÑÐ½Ñ (Morgan Owens) |
| ÐÑÑÑÑ Ð¡Ñикни (Matthew Stickney) |
| ÐаÑан ÐоÑÑаÑÑ (Nathan Bossart) |
| ÐаÑан ÐÐ°Ð³Ð½ÐµÑ (Nathan Wagner) |
| Ðейл Ðонвей (Neil Conway) |
| Ðик ÐаÑÐ½Ñ (Nick Barnes) |
| ÐикиÑа ÐлÑÑ Ð¾Ð² (Nikita Glukhov) |
| Ðиколай Шаплов (Nikolay Shaplov) |
| ÐÐ¸ÐºÐ¾Ð»Ð°Ñ Ð¢Ð¾Ð²ÐµÐ½ (Nicolas Thauvin) |
| ÐÐ¸ÐºÑ Ð¸Ð» СонÑакке (Nikhil Sontakke) |
| Ðой ÐÐ¸Ñ (Noah Misch) |
| ÐоÑиÑÑи Синода (Noriyoshi Shinoda) |
| Ðлег ÐаÑÑÑнов (Oleg Bartunov) |
| Ðлег Самойлов (Oleg Samoilov) |
| ÐÐ»Ð¸Ð²ÐµÑ Ð¤Ð¾Ñд (Oliver Ford) |
| Ðаван ÐеолаÑи (Pavan Deolasee) |
| Ðаван ÐаддамÑеÑÑи (Pavan Maddamsetti) |
| Ðавел ÐолÑÐ±Ñ (Pavel Golub) |
| Ðавел СÑÐµÑ Ñле (Pavel Stehule) |
| Ðан ÐÑÐ½Ñ (Pan Bian) |
| ÐаÑÐºÐ°Ð»Ñ ÐегÑан (Pascal Legrand) |
| ÐаÑÑик ÐÑÐµÐºÐµÑ (Patrick Krecker) |
| ÐаÑÑик Ð¥ÐµÐ¼Ð¼ÐµÑ (Patrick Hemmer) |
| ÐеÑÑ Ðелинек (Petr JelÃnek) |
| ÐеÑÑÑ-ФлоÑин ÐÐ¸Ñ Ð°Ð½Ñа (Petru-Florin Mihancea) |
| ÐиÑÐµÑ Ðейган (Peter Geoghegan) |
| ÐиÑÐµÑ ÐйзенÑÑаÑÑ (Peter Eisentraut) |
| Ðол ÐÑо (Paul Guo) |
| Ðол РамÑей (Paul Ramsey) |
| ÐÐ¾Ð»Ñ Ðоно (Paul Bonaud) |
| ÐÑÐ°Ð±Ñ Ð°Ñ Ð¡Ð°Ñ Ñ (Prabhat Sahu) |
| ÐÑ ÐвÑн (Pu Qun) |
| ÐÑÐµÑ ÐÑкÑоке (Pierre Ducroquet) |
| ÐÑÑÑ Ð¡ÑеÑанÑк (Piotr Stefaniak) |
| РаджкÑÐ¼Ð°Ñ Ð Ð°Ð³Ñ ÑванÑи (Rajkumar Raghuwanshi) |
| Райан ÐеÑÑи (Ryan Murphy) |
| Ð Ð°Ð¹Ð½ÐµÑ ÐÑÑ (Rainer Orth) |
| РаÑÐ»Ñ ÐаÑин РодÑÐ¸Ð³ÐµÑ (Raúl MarÃn RodrÃguez) |
| РаÑÐ¸Ñ Ð¡Ð°Ð±Ð¸Ñ (Rafia Sabih) |
| Ð Ð°Ñ Ð¸Ð»Ð° СÑед (Rahila Syed) |
| Регина Ðбе (Regina Obe) |
| РиÑаÑд Ðен (Richard Yen) |
| РобеÑÑ Ð¥Ð°Ð°Ñ (Robert Haas) |
| Ð Ð¾Ð±Ð¸Ð½Ñ Ð¢Ð°Ñакан (Robins Tharakan) |
| Род Ð¢ÐµÐ¹Ð»Ð¾Ñ (Rod Taylor) |
| Ð ÑÑаб ÐаÑиа (Rushabh Lathia) |
| Саймон Ð Ð¸Ð³Ð³Ñ (Simon Riggs) |
| СамÑÑÐ»Ñ Ð¥Ð¾ÑÐ²Ð¸Ñ (Samuel Horwitz) |
| Свен ÐÑнÑе (Sven Kunze) |
| Симоне ÐоÑÑи (Simone Gotti) |
| Ð¡Ð¸Ð½Ñ Ð§Ð¶Ð°Ð½ (Xin Zhang) |
| СкоÑÑ Ð£Ñе (Scott Ure) |
| СÑÐ°Ñ ÐелÑÐ²Ð¸Ñ (Stas Kelvich) |
| СÑеÑан ÐалÑÑенбÑÑÐ½Ð½ÐµÑ (Stefan Kaltenbrunner) |
| СÑеÑан ФÑÐ¾Ð¹Ð»Ð¸Ñ (Stephen Froehlich) |
| СÑив Ð¡Ð¸Ð½Ð³ÐµÑ (Steve Singer) |
| СÑивен ÐинÑилд (Steven Winfield) |
| СÑивен ФÑоÑÑ (Stephen Frost) |
| Тайки Ðондо (Taiki Kondo) |
| ТакаÑки ЦÑнакава (Takayuki Tsunakawa) |
| ТакÑÑи ÐдÑÑÐ¸Ñ Ð° (Takeshi Ideriha) |
| ТаÑÑо ÐÑии (Tatsuo Ishii) |
| ТаÑÑÑо Ямада (Tatsuro Yamada) |
| Ð¢Ð¾Ð±Ð¸Ð°Ñ ÐÑÑман (Tobias Bussmann) |
| Тодд Ð. ÐÑк (Todd A. Cook) |
| Том ÐÑаÑн (Thom Brown) |
| Том ÐазимиÑÑ (Tom Kazimiers) |
| Том Ðейн (Tom Lane) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐеллеÑÐµÑ (Thomas Kellerer) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо (Thomas Munro) |
| Ð¢Ð¾Ð¼Ð°Ñ Ð ÐµÐ¹ÑÑ (Thomas Reiss) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа (Tomas Vondra) |
| ТомонаÑи ÐаÑÑмаÑа (Tomonari Katsumata) |
| ТоÑÑÑен ÐÑÑÑÑ (Torsten Grust) |
| ТÑÑÐ°Ñ ÐÑ Ñджа (Tushar Ahuja) |
| ФабÑиÑио де Ð Ð¾Ð¹ÐµÑ Ðелло (FabrÃzio de Royes Mello) |
| ФабÑен ÐоÑлÑо (Fabien Coelho) |
| Фейке СÑинбеÑген (Feike Steenbergen) |
| Фил ФлоÑÐµÐ½Ñ (Phil Florent) |
| Филипп ÐодÑÑн (Philippe Beaudoin) |
| ФÑÐ¸Ñ Ð¯Ð»Ð²Ð¸Ð½Ð³ (Frits Jalvingh) |
| ФÑдзии ÐаÑао (Fujii Masao) |
| ФÑÐ´Ð¾Ñ Ð¡Ð¸Ð³Ð°ÐµÐ² (Teodor Sigaev) |
| Хади ÐоÑаеди (Hadi Moshayedi) |
| ХайлÑн Ðи (Hailong Li) |
| Хайме Ðазанова (Jaime Casanova) |
| ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми (Haribabu Kommi) |
| Хейкки ÐÐ¸Ð½Ð½Ð°ÐºÐ°Ð½Ð³Ð°Ñ (Heikki Linnakangas) |
| Ð¥Ð¸Ñ ÐоÑд (Heath Lord) |
| Ð¥ÑÑго ÐеÑÑÑе (Hugo Mercier) |
| Цзин Ðан (Jing Wang) |
| Чад ТÑÐ°Ð±Ð°Ð½Ñ (Chad Trabant) |
| Чепмен ФлÑк (Chapman Flack) |
| Ð§Ð¶Ð¾Ñ Ðигоал (Zhou Digoal) |
| Шао ÐÑÐµÑ (Shao Bret) |
| Ð¨Ð°Ñ Ð°Ð¿ ÐÑÑи (Sahap Asci) |
| ШиваÑÑбÑаманÑÑн РамаÑÑбÑаманÑÑн (Sivasubramanian Ramasubramanian) |
| Шон ÐжонÑÑон (Sean Johnston) |
| ШÑÐ±Ñ Ð°Ð¼ ÐаÑай (Shubham Barai) |
| ШÑй РоджанÑки (Shay Rojansky) |
| ÐвеÑалÑдо ÐанÑÑо (Everaldo Canuto) |
| ÐдмÑнд ХоÑÐ½ÐµÑ (Edmund Horner) |
| Ðйдзи СÑки (Eiji Seki) |
| ÐÐ¹Ð»ÐµÑ Ð¢Ð°Ð²ÐµÐ¹Ñа (Euler Taveira) |
| ÐÐ»Ð²Ð¸Ñ ÐÑанÑкевиÑÑÑ (Elvis Pranskevichus) |
| ÐмÑе ХаÑегели (Emre Hasegeli) |
| Ðнди ÐбелиÑÑо (Andy Abelisto) |
| ÐндÑÑ ÐиÑÑ (Andrew Gierth) |
| ÐндÑÑ ÐÑоÑÑман (Andrew Grossman) |
| ÐндÑÑ ÐÑнÑÑан (Andrew Dunstan) |
| ÐндÑÑ Ð¤Ð»ÐµÑÑÐµÑ (Andrew Fletcher) |
| ÐÑвин ÐÑандÑÑеÑÑÐµÑ (Erwin Brandstetter) |
| ÐÑик РижкеÑÑ (Erik Rijkers) |
| ÐÑÑÑо ФÑдзиÑа (Etsuro Fujita) |
| Юго ÐагаÑа (Yugo Nagata) |
| Юки ÐÑ (Yuqi Gu) |
| ЮÑген ÐÑÑÑÑ (Jürgen Purtz) |
| ЮÑий Соколов (Yura Sokolov) |
| Якоб ÐÐ³Ð³ÐµÑ (Jakob Egger) |