E.50. ÐÑпÑÑк 10
ÐаÑа вÑпÑÑка: 2017-10-05
E.50.1. ÐбзоÑ
Ð ÑиÑло клÑÑевÑÑ ÑÑовеÑÑенÑÑвований PostgreSQL 10 Ð²Ñ Ð¾Ð´ÑÑ:
ÐогиÑеÑÐºÐ°Ñ ÑепликаÑÐ¸Ñ Ð¿Ð¾ ÑÑ ÐµÐ¼Ðµ пÑбликаÑии/подпиÑки
ÐеклаÑаÑивное ÑекÑиониÑование ÑаблиÑ
УлÑÑÑение ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов
ÐнаÑиÑелÑное ÑвелиÑение обÑей пÑоизводиÑелÑноÑÑи
Ðолее ÑилÑÐ½Ð°Ñ Ð·Ð°ÑиÑа паÑолей Ñ Ð¸ÑполÑзованием SCRAM-SHA-256
УлÑÑÑеннÑе ÑÑедÑÑва мониÑоÑинга и ÑпÑавлениÑ
ÐÑедÑдÑÑие пÑнкÑÑ Ð±Ð¾Ð»ÐµÐµ подÑобно опиÑÐ°Ð½Ñ Ð² ÑледÑÑÑÐ¸Ñ ÑÐ°Ð·Ð´ÐµÐ»Ð°Ñ .
E.50.2. ÐигÑаÑÐ¸Ñ Ð½Ð° веÑÑÐ¸Ñ 10
Тем, кÑо Ñ Ð¾ÑÐµÑ Ð¼Ð¸Ð³ÑиÑоваÑÑ Ð´Ð°Ð½Ð½Ñе из лÑбой пÑедÑдÑÑей веÑÑии, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ вÑполниÑÑ Ð²ÑгÑÑзкÑ/загÑÑÐ·ÐºÑ Ð´Ð°Ð½Ð½ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ pg_dumpall либо иÑполÑзоваÑÑ pg_upgrade или логиÑеÑкÑÑ ÑепликаÑиÑ. ÐбÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ пеÑÐµÑ Ð¾Ð´Ðµ на более новÑÑ Ð¾ÑновнÑÑ Ð²ÐµÑÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи в Разделе 17.6.
РвеÑÑии 10 Ñеализован ÑÑд изменений, коÑоÑÑе могÑÑ Ð¿Ð¾Ð²Ð»Ð¸ÑÑÑ Ð½Ð° ÑовмеÑÑимоÑÑÑ Ñ Ð¿ÑедÑдÑÑими вÑпÑÑками. ÐÑимиÑе к ÑÐ²ÐµÐ´ÐµÐ½Ð¸Ñ ÑледÑÑÑие неÑовмеÑÑимоÑÑи:
ÐоÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ pg_upgrade Ñ Ð»Ñбой пÑедÑдÑÑей оÑновной веÑÑии PostgreSQL Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ пеÑеÑÑÑоиÑÑ Ñ ÐµÑ-индекÑÑ (ÐиÑÑ Ñн Сай, РобеÑÑ Ð¥Ð°Ð°Ñ, ÐÐ¼Ð¸Ñ Ðапила)
ÐÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑÑ Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ ÑÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑодикÑована знаÑиÑелÑнÑм ÑÑовеÑÑенÑÑвованием Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° Ñ ÐµÑ-индекÑов. ÐÐ»Ñ Ð¾Ð±Ð»ÐµÐ³ÑÐµÐ½Ð¸Ñ Ð·Ð°Ð´Ð°Ñи пеÑеиндекÑаÑии pg_upgrade ÑоздаÑÑ Ð²ÑпомогаÑелÑнÑй ÑкÑипÑ.
ÐеÑеименование каÑалога Ñ Ð¶ÑÑналом пÑедзапиÑи из
pg_xlogвpg_wal, а Ñакже пеÑеименование каÑалога Ñ Ð¸Ð½ÑоÑмаÑией о ÑоÑÑоÑнии ÑÑанзакÑий изpg_clogвpg_xact(ÐикаÑÐ»Ñ ÐакÑе)СÑаÑÑе имена неоднокÑаÑно вводили полÑзоваÑелей в заблÑждение â полÑзоваÑели дÑмали, ÑÑо ÑÑи каÑалоги ÑодеÑÐ¶Ð°Ñ ÑолÑко неÑÑÑеÑÑвеннÑе ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑналов, и вÑÑÑнÑÑ ÑдалÑли ÑÐ°Ð¹Ð»Ñ Ð¶ÑÑналов пÑедзапиÑи или ÑоÑÑоÑÐ½Ð¸Ñ ÑÑанзакÑий, ÑÑо пÑиводило к необÑаÑимой поÑеÑе даннÑÑ . ÐÑи пеÑÐµÐ¸Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑÐ¸Ð·Ð²Ð°Ð½Ñ Ð¿ÑедоÑвÑаÑиÑÑ Ñакие оÑибки в бÑдÑÑем.
Ðамена в Ð¸Ð¼ÐµÐ½Ð°Ñ ÑÑнкÑий SQL, ÑÑÐ¸Ð»Ð¸Ñ Ð¸ паÑамеÑÑов вÑÐµÑ Ñпоминаний «xlog» на «wal» (РобеÑÑ Ð¥Ð°Ð°Ñ)
ÐапÑимеÑ, имÑ
pg_switch_xlog()поменÑлоÑÑ Ð½Ð°pg_switch_wal(), pg_receivexlog â на pg_receivewal, а--xlogdirâ на--waldir. ÐÑо бÑло Ñделано вмеÑÑе Ñ Ð¿ÐµÑеименованием каÑалогаpg_xlogÐ´Ð»Ñ ÑоглаÑованноÑÑи; и вообÑе ÑеÑмин «xlog» ÑепеÑÑ Ð½Ð¸Ð³Ð´Ðµ не Ð¼Ð¾Ð¶ÐµÑ Ð²ÑÑÑеÑиÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑелÑ.Ðамена в ÑвÑзаннÑÑ Ñ WAL ÑÑнкÑиÑÑ Ð¸ пÑедÑÑавлениÑÑ
locationнаlsn(ÐÑвид РоÑли)Ранее имело меÑÑо неÑоглаÑованное ÑпоÑÑебление Ð¾Ð±Ð¾Ð¸Ñ ÑеÑминов.
Ðзменение ÑеализаÑии ÑÑнкÑий, возвÑаÑаÑÑÐ¸Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑва, в ÑпиÑке
SELECT(ÐндÑÐµÑ Ð¤Ñойнд)ФÑнкÑии, возвÑаÑаÑÑие множеÑÑва, ÑепеÑÑ Ð²ÑÑиÑлÑÑÑÑÑ Ð´Ð¾ вÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑкалÑÑнÑÑ Ð²ÑÑажений в ÑпиÑке
SELECT, пÑакÑиÑеÑки Ñак же, как еÑли Ð±Ñ Ð¾Ð½Ð¸ бÑли помеÑÐµÐ½Ñ Ð² пÑедложениеLATERAL FROM. ÐÑо даÑÑ Ð±Ð¾Ð»ÐµÐµ понÑÑное поведение в ÑлÑÑаÑÑ , когда пÑиÑÑÑÑÑвÑÑÑ Ð½ÐµÑколÑко ÑÐ°ÐºÐ¸Ñ ÑÑнкÑий. ÐÑли они возвÑаÑаÑÑ Ñазное колиÑеÑÑво ÑÑÑок, вÑе ÑезÑлÑÑаÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑÑÑÑÑ Ð´Ð¾ наиболÑÑего колиÑеÑÑва ÑÑÑок знаÑениÑми NULL. Ранее ÑезÑлÑÑаÑÑ Ð¾Ð±ÑабаÑÑвалиÑÑ Ð² Ñикле, пока вÑе ÑÑнкÑии не завеÑÑалиÑÑ, и в ÑезÑлÑÑаÑе полÑÑалоÑÑ ÐºÐ¾Ð»Ð¸ÑеÑÑво ÑÑÑок, Ñавное наименÑÑÐµÐ¼Ñ Ð¾Ð±ÑÐµÐ¼Ñ ÐºÑаÑÐ½Ð¾Ð¼Ñ Ð¿ÐµÑиодов ÑÑнкÑий. ÐÑоме Ñого, ÑÑнкÑии, возвÑаÑаÑÑие множеÑÑва, ÑепеÑÑ Ð½ÐµÐ»ÑÐ·Ñ Ð¸ÑполÑзоваÑÑ Ð² конÑÑÑÑкÑиÑÑCASEиCOALESCE. Ðа дополниÑелÑнÑми ÑведениÑми обÑаÑиÑеÑÑ Ðº ÐодÑазделÑ 35.4.8.ÐÑполÑзование ÑÑандаÑÑного ÑинÑакÑиÑа конÑÑÑÑкÑоÑа ÑÑÑоки в
UPDATE ... SET ((Том Ðейн)ÑпиÑок_ÑÑолбÑов) =конÑÑÑÑкÑоÑ_ÑÑÑокиТепеÑÑ
конÑÑÑÑкÑоÑ_ÑÑÑÐ¾ÐºÐ¸Ð¼Ð¾Ð¶ÐµÑ Ð½Ð°ÑинаÑÑÑÑ Ñо ÑловаROW; Ñанее его надо бÑло опÑÑкаÑÑ. ÐÑли вÑпиÑке_ÑÑолбÑовÑигÑÑиÑÑÐµÑ Ð¸Ð¼Ñ ÑолÑко одного ÑÑолбÑа,конÑÑÑÑкÑоÑ_ÑÑÑокидолжен иÑполÑзоваÑÑ ÐºÐ»ÑÑевое ÑловоROW, Ñак как инаÑе он не бÑÐ´ÐµÑ ÐºÐ¾ÑÑекÑнÑм конÑÑÑÑкÑоÑом ÑÑÑоки, а бÑÐ´ÐµÑ Ð²Ð¾ÑпÑинимаÑÑÑÑ ÐºÐ°Ðº вÑÑажение в ÑÐºÐ¾Ð±ÐºÐ°Ñ . Также запиÑÑвимÑ_ÑаблиÑÑ.*конÑÑÑÑкÑоÑе_ÑÑÑокиÑепеÑÑ ÑазвоÑаÑиваеÑÑÑ Ð² Ð½Ð°Ð±Ð¾Ñ ÑÑолбÑов, как и в дÑÑÐ³Ð¸Ñ ÑлÑÑаÑÑ Ð¸ÑполÑзованиÑконÑÑÑÑкÑоÑа_ÑÑÑоки.Ðогда
ALTER TABLE ... ADD PRIMARY KEYпомеÑÐ°ÐµÑ ÑÑолбÑÑ ÐºÐ°ÐºNOT NULL, ÑÑо изменение ÑепеÑÑ ÑаÑпÑоÑÑÑанÑеÑÑÑ Ñакже на доÑеÑние ÑаблиÑÑ Ð² иеÑаÑÑ Ð¸Ð¸ наÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ (ÐикаÑÐ»Ñ ÐакÑе)ÐÑедоÑвÑаÑение ÑÑабаÑÑÐ²Ð°Ð½Ð¸Ñ ÑÑиггеÑов ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð¿ÐµÑаÑоÑа более одного Ñаза Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ опеÑаÑоÑа (Том Ðейн)
Ð ÑлÑÑаÑÑ , когда пиÑÑÑие CTE изменÑли Ð¾Ð´Ð½Ñ ÑаблиÑÑ, изменÑемÑÑ Ð²Ð½ÐµÑним опеÑаÑоÑом либо дÑÑгими пиÑÑÑими CTE, ÑÑиггеÑÑ
BEFORE STATEMENTиAFTER STATEMENTвÑзÑвалиÑÑ Ð½ÐµÐ¾Ð´Ð½Ð¾ÐºÑаÑно. Также, еÑли в ÑаблиÑе бÑли опÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑÑиггеÑÑ ÑÑÐ¾Ð²Ð½Ñ Ð¾Ð¿ÐµÑаÑоÑа, в ÑезÑлÑÑаÑе дейÑÑвий Ð´Ð»Ñ Ð¾Ð±ÐµÑпеÑÐµÐ½Ð¸Ñ ÑелоÑÑноÑÑи внеÑнего клÑÑа (напÑимеÑ,ON DELETE CASCADE), они могли вÑзÑваÑÑÑÑ Ð½ÐµÑколÑко Ñаз Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ внеÑнего SQL-опеÑаÑоÑа. ÐÑо поведение пÑоÑивоÑеÑÐ¸Ñ ÑÑандаÑÑÑ SQL и бÑло иÑпÑавлено.ÐеÑемеÑение полей меÑаданнÑÑ Ð¿Ð¾ÑледоваÑелÑноÑÑей в новÑй ÑиÑÑемнÑй каÑалог
pg_sequence(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑноÑение поÑледоваÑелÑноÑÑи ÑодеÑÐ¶Ð¸Ñ ÑепеÑÑ ÑолÑко полÑ, коÑоÑÑе могÑÑ Ð±ÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ ÑÑнкÑией
nextval(), Ñо еÑÑÑlast_value,log_cntиis_called. ÐÑÑгие ÑвойÑÑва поÑледоваÑелÑноÑÑи, Ñакие как наÑалÑное знаÑение и Ñаг ÑвелиÑениÑ, ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² ÑооÑвеÑÑÑвÑÑÑей ÑÑÑоке в каÑалогеpg_sequence. ÐейÑÑвиеALTER SEQUENCEÑепеÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑÑанзакÑионное и, как ÑледÑÑвие, блокиÑÑÐµÑ Ð¿Ð¾ÑледоваÑелÑноÑÑÑ Ð´Ð¾ ÑикÑаÑии ÑÑанзакÑии. ФÑнкÑииnextval()иsetval()оÑÑаÑÑÑÑ Ð½ÐµÑÑанзакÑионнÑми.ÐÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð½ÐµÑовмеÑÑимоÑÑÑ, пÑивнеÑÑÐ½Ð½Ð°Ñ ÑÑим изменением, ÑоÑÑÐ¾Ð¸Ñ Ð² Ñом, ÑÑо из оÑноÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑи ÑепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ пÑоÑиÑаÑÑ ÑолÑко ÑÑи полÑ, пеÑеÑиÑленнÑе вÑÑе. ЧÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ Ð´ÑÑгие ÑвойÑÑва поÑледоваÑелÑноÑÑи, пÑÐ¸Ð»Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð±ÑаÑиÑÑÑÑ Ðº
pg_sequence. Также Ð´Ð»Ñ ÑÑого можно иÑполÑзоваÑÑ Ð½Ð¾Ð²Ð¾Ðµ ÑиÑÑемное пÑедÑÑавлениеpg_sequences; оно вÑдаÑÑ ÑÑолбÑÑ Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸, более Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑими Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑего кода.ÐÑоме Ñого, поÑледоваÑелÑноÑÑи, ÑозданнÑе Ð´Ð»Ñ ÑÑолбÑов
SERIAL, ÑепеÑÑ Ð³ÐµÐ½ÐµÑиÑÑÑÑ 32-биÑнÑе знаÑениÑ, Ñогда как пÑедÑдÑÑие веÑÑии генеÑиÑовали 64-биÑнÑе. ÐÑо оÑлиÑие никак не пÑоÑвлÑеÑÑÑ, еÑли знаÑÐµÐ½Ð¸Ñ Ð¿ÑоÑÑо ÑÐ¾Ñ ÑанÑÑÑÑÑ Ð² ÑÑолбÑе.ÐеÑеÑабоÑан и вÑвод ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ psql
\dÐ´Ð»Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей.ÐеÑедаÑа по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿ÑогÑаммой pg_basebackup даннÑÑ WAL, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð²Ð¾ÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвной копии (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
ÐÑи ÑÑом в pg_basebackup подÑазÑмеваемое знаÑение
-X/--wal-methodменÑеÑÑÑ Ð½Ð°stream. ÐÐ»Ñ Ð²Ð¾ÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÑÑаÑого Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð±Ñл добавлен ваÑÐ¸Ð°Ð½Ñ Ð·Ð½Ð°ÑениÑnone. ÐаÑамеÑÑ pg_basebackup-xбÑл ÑдалÑн (иÑполÑзÑйÑе вмеÑÑо него-X fetch).Ðзменение запиÑей логиÑеÑкой ÑепликаÑии в
pg_hba.conf(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)РпÑедÑдÑÑÐ¸Ñ Ð²ÐµÑÑиÑÑ Ð´Ð»Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð»Ð¾Ð³Ð¸ÑеÑкой ÑепликаÑии ÑÑебовалоÑÑ ÑказаÑÑ
replicationв ÑÑолбÑе Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ . С ÑÑого вÑпÑÑка логиÑеÑкой ÑепликаÑии ÑооÑвеÑÑÑвÑÐµÑ Ð¾Ð±ÑÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ Ð±Ð°Ð·Ñ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð»Ð¸ клÑÑевÑм Ñловом, напÑимеÑ,all. ÐÐ»Ñ ÑизиÑеÑкой ÑепликаÑии по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¸ÑполÑзÑеÑÑÑ ÐºÐ»ÑÑевое Ñловоreplication. Так как вÑÑÑÐ¾ÐµÐ½Ð½Ð°Ñ Ð»Ð¾Ð³Ð¸ÑеÑÐºÐ°Ñ ÑепликаÑÐ¸Ñ Ð¿Ð¾ÑвилаÑÑ ÑолÑко в ÑÑом вÑпÑÑке, ÑÑо изменение Ð¼Ð¾Ð¶ÐµÑ Ð·Ð°ÑÑонÑÑÑ ÑолÑко полÑзоваÑелей ÑÑоÑÐ¾Ð½Ð½Ð¸Ñ ÑÑедÑÑв логиÑеÑкой ÑепликаÑии.ÐÑе дейÑÑÐ²Ð¸Ñ Ð² pg_ctl по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¾Ð¶Ð¸Ð´Ð°ÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑии (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ранее некоÑоÑÑе дейÑÑÐ²Ð¸Ñ pg_ctl не ждали завеÑÑÐµÐ½Ð¸Ñ Ð¸ Ð´Ð»Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ ÑÑебовалоÑÑ Ð¸ÑполÑзоваÑÑ ÐºÐ»ÑÑ
-w.Ðзменение знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ ÑеÑвеÑного паÑамеÑÑа log_directory Ñ
pg_logнаlog(ÐндÑÐµÐ°Ñ ÐаÑлÑÑон)Ðобавление паÑамеÑÑа конÑигÑÑаÑии ssl_dh_params_file Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ Ñайла Ñ Ð½ÐµÑÑандаÑÑнÑми паÑамеÑÑами OpenSSL DH (Хейкки ÐиннакангаÑ)
Тем ÑамÑм заменÑеÑÑÑ Ð¶ÑÑÑко заданное и недокÑменÑиÑованное Ð¸Ð¼Ñ Ñайла
dh1024.pem. ÐамеÑÑÑе, ÑÑо Ñайлdh1024.pemпо ÑмолÑÐ°Ð½Ð¸Ñ Ð±Ð¾Ð»ÑÑе не обÑабаÑÑваеÑÑÑ; Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð·Ð°Ð´Ð°ÑÑ ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ, еÑли Ñ Ð¾ÑиÑе иÑполÑзоваÑÑ Ñвои паÑамеÑÑÑ DH.УвелиÑение ÑазмеÑа ÑÑандаÑÑнÑÑ Ð¿Ð°ÑамеÑÑов DH, иÑполÑзÑемÑÑ Ð´Ð»Ñ ÑÑемеÑнÑÑ DH-ÑиÑÑов OpenSSL, до 2048 Ð±Ð¸Ñ (Хейкки ÐиннакангаÑ)
Ð Ð°Ð·Ð¼ÐµÑ Ð¿ÑедопÑеделÑннÑÑ Ð² коде паÑамеÑÑов DH бÑл ÑвелиÑен Ñ 1024 до 2048 биÑ, Ñак ÑÑо обмен клÑÑами DH ÑÑал более ÑÑÑойÑивÑм к подбоÑÑ ÑиÑÑа. Ðднако некоÑоÑÑе ÑÑаÑÑе ÑеализаÑии SSL, в ÑаÑÑноÑÑи некоÑоÑÑе Ñевизии Java Runtime Environment веÑÑии 6, не пÑинимаÑÑ Ð¿Ð°ÑамеÑÑÑ DH длиннее 1024 Ð±Ð¸Ñ Ð¸, Ñаким обÑазом, не ÑмогÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ ÑеÑез SSL. ÐÑли вам Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ поддеÑживаÑÑ Ñакие ÑÑаÑÑе клиенÑÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð½ÐµÑÑандаÑÑнÑе паÑамеÑÑÑ DH ÑазмеÑом 1024 биÑа вмеÑÑо пÑедопÑеделÑннÑÑ Ð¿Ð°ÑамеÑÑов по ÑмолÑаниÑ. См. ssl_dh_params_file.
ÐиквидаÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÐ·Ð°ÑиÑÑованнÑÑ Ð¿Ð°Ñолей на ÑеÑвеÑе (Хейкки ÐиннакангаÑ)
СеÑвеÑнÑй паÑамеÑÑ password_encryption болÑÑе не поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð·Ð½Ð°ÑениÑ
offиplain. ÐаÑианÑUNENCRYPTEDÑакже ÑепеÑÑ Ð½Ðµ поддеÑживаеÑÑÑ Ð² командаÑCREATE/ALTER USER ... PASSWORD. ÐналогиÑно бÑл ÑдалÑн клÑÑ--unencryptedÐºÐ¾Ð¼Ð°Ð½Ð´Ñ createuser. ÐезаÑиÑÑованнÑе паÑоли, пеÑенеÑÑннÑе из ÑÑаÑÑÑ Ð²ÐµÑÑий, в ÑÑой веÑÑии бÑдÑÑ Ñ ÑаниÑÑÑÑ Ð² заÑиÑÑованном виде. ÐнаÑением по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑаpassword_encryptionоÑÑаÑÑÑÑmd5.Ðобавление ÑеÑвеÑнÑÑ Ð¿Ð°ÑамеÑÑов min_parallel_table_scan_size и min_parallel_index_scan_size Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð°ÑаллелÑнÑми запÑоÑами (ÐÐ¼Ð¸Ñ Ðапила, РобеÑÑ Ð¥Ð°Ð°Ñ)
Ðни заменÑÑÑ Ð¿ÐµÑеменнÑÑ
min_parallel_relation_size, коÑоÑÐ°Ñ Ð±Ñла ÑлиÑком обÑей.Ðе заклÑÑÑннÑй в кавÑÑки ÑекÑÑ Ð² shared_preload_libraries и ÑвÑзаннÑÑ ÑеÑвеÑнÑÑ Ð¿Ð°ÑамеÑÑÐ°Ñ Ð½Ðµ должен пеÑеводиÑÑÑÑ Ð² нижний ÑегиÑÑÑ (ÐÑÑÐ»Ñ Ð§Ð¶Ð¾)
ÐÑи паÑамеÑÑÑ Ð½Ð° Ñамом деле пÑедÑÑавлÑÑÑ Ñобой ÑпиÑки имÑн Ñайлов, но Ñанее они воÑпÑинималиÑÑ ÐºÐ°Ðº ÑпиÑки SQL-иденÑиÑикаÑоÑов и обÑабаÑÑвалиÑÑ Ð¿Ð¾ дÑÑгим пÑавилам.
Удаление ÑеÑвеÑного паÑамеÑÑа
sql_inheritance(РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÑи вÑклÑÑенном знаÑении ÑÑого паÑамеÑÑа запÑоÑÑ, обÑаÑаÑÑиеÑÑ Ðº ÑодиÑелÑÑким ÑаблиÑам, пеÑеÑÑаÑÑ ÑÑиÑÑваÑÑ Ð´Ð¾ÑеÑние. Ðднако ÑÑандаÑÑ SQL ÑÑебÑеÑ, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ ÑÑиÑÑвалиÑÑ, и ÑÑо поведение бÑло пÑинÑÑо по ÑмолÑÐ°Ð½Ð¸Ñ Ð² PostgreSQL 7.1.
РеализаÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пеÑедаваÑÑ Ð¼Ð½Ð¾Ð³Ð¾Ð¼ÐµÑнÑе маÑÑÐ¸Ð²Ñ Ð² ÑÑнкÑии на PL/Python и возвÑаÑаÑÑ Ð²Ð»Ð¾Ð¶ÐµÐ½Ð½Ñе ÑпиÑки Python (ÐлекÑей ÐÑиÑенко, ÐÑйв ÐÑамеÑ, Хейкки ÐиннакангаÑ)
ÐÑо изменение поÑÑебовало наÑÑÑиÑÑ Ð¾Ð±ÑаÑнÑÑ ÑовмеÑÑимоÑÑÑ Ð² ÑаÑÑи обÑабоÑки маÑÑивов ÑоÑÑавнÑÑ Ñипов в PL/Python. РанÑÑе можно бÑло веÑнÑÑÑ Ð¼Ð°ÑÑив ÑоÑÑавнÑÑ Ñипов как
[[col1, col2], [col1, col2]]; но ÑепеÑÑ ÑÑо бÑÐ´ÐµÑ Ð¸Ð½ÑеÑпÑеÑиÑоваÑÑÑÑ ÐºÐ°Ðº двÑÑ Ð¼ÐµÑнÑй маÑÑив. СоÑÑавнÑе ÑÐ¸Ð¿Ñ Ð² маÑÑÐ¸Ð²Ð°Ñ Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð·Ð½Ð°ÑноÑÑи Ð´Ð¾Ð»Ð¶Ð½Ñ Ð²Ð¾Ð·Ð²ÑаÑаÑÑÑÑ ÑепеÑÑ Ð² виде коÑÑежей Python, а не в виде ÑпиÑков. То еÑÑÑ Ð¿ÑедÑдÑÑÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð½Ñжно замениÑÑ Ð½Ð°[(col1, col2), (col1, col2)].Удаление Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° авÑозагÑÑзки «модÑлей» PL/Tcl (Том Ðейн)
Ðа Ð·Ð°Ð¼ÐµÐ½Ñ ÑÑой ÑÑнкÑионалÑноÑÑи пÑиÑли новÑе ÑеÑвеÑнÑе паÑамеÑÑÑ pltcl.start_proc и pltclu.start_proc, коÑоÑÑе пÑоÑе в иÑполÑзовании и даÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи, подобнÑе имеÑÑимÑÑ Ð² дÑÑÐ³Ð¸Ñ ÑзÑÐºÐ°Ñ Ð¿ÑогÑаммиÑованиÑ.
ÐиквидаÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки вÑгÑÑзки даннÑÑ Ñ ÑеÑвеÑов до 8.0 ÑÑилиÑами pg_dump/pg_dumpall (Том Ðейн)
ÐолÑзоваÑелÑм, коÑоÑÑм нÑжно вÑгÑÑзиÑÑ Ð´Ð°Ð½Ð½Ñе Ñ ÑеÑвеÑов до 8.0, оÑÑаÑÑÑÑ Ð¸ÑполÑзоваÑÑ dump из PostgreSQL веÑÑии 9.6 или ÑÑаÑее. ÐÑгÑÑженнÑе ÑÑими веÑÑиÑми даннÑе Ð´Ð¾Ð»Ð¶Ð½Ñ ÑÑпеÑно загÑÑжаÑÑÑÑ Ð½Ð° новÑÑ ÑеÑвеÑÐ°Ñ .
ÐиквидаÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°ÑÑ/вÑемени и инÑеÑвалов в виде ÑиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой (Том Ðейн)
ÐаÑамеÑÑ configure
--disable-integer-datetimesбÑл ÑдалÑн. ÐÑполÑзование Ð´Ð»Ñ ÑÐ°ÐºÐ¸Ñ Ð·Ð½Ð°Ñений ÑиÑел Ñ Ð¿Ð»Ð°Ð²Ð°ÑÑей ÑоÑкой не давало знаÑимÑÑ Ð¿ÑеимÑÑеÑÑв и не бÑло ваÑианÑом по ÑмолÑаниÑ, наÑÐ¸Ð½Ð°Ñ Ñ PostgreSQL 8.3.ÐиквидаÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑеÑвеÑом клиенÑ-ÑеÑвеÑного пÑоÑокола веÑÑии 1.0 (Том Ðейн)
ÐÑÐ¾Ñ Ð¿ÑоÑокол не поддеÑживалÑÑ ÐºÐ»Ð¸ÐµÐ½Ñами Ñо вÑемÑн PostgreSQL 6.3.
Удаление модÑлÑ
contrib/tsearch2(РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÑÐ¾Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¾Ð±ÐµÑпеÑивал ÑовмеÑÑимоÑÑÑ Ñ Ð²ÐµÑÑией полноÑекÑÑового поиÑка, коÑоÑÐ°Ñ Ð¿Ð¾ÑÑавлÑлаÑÑ Ñ ÑеÑвеÑами PostgreSQL до веÑÑии 8.3.
ÐиквидаÑÐ¸Ñ Ð¿Ñиложений командной ÑÑÑоки createlang и droplang (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ðни пеÑеÑли в ÑазÑÑд ÑÑÑаÑевÑÐ¸Ñ Ð² PostgreSQL 9.1. ÐмеÑÑо Ð½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ непоÑÑедÑÑвенно иÑполÑзоваÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ
CREATE EXTENSIONиDROP EXTENSION.ÐиквидаÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки вÑзовов ÑÑнкÑий веÑÑии 0 (ÐндÑÐµÑ Ð¤Ñойнд)
РаÑÑиÑениÑ, пÑедоÑÑавлÑÑÑие ÑÑнкÑии, ÑеализованнÑе на C, ÑепеÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ ÑоглаÑение о вÑÐ·Ð¾Ð²Ð°Ñ Ð²ÐµÑÑии 1. ÐеÑÑÐ¸Ñ 0 ÑÑиÑалаÑÑ ÑÑÑаÑевÑей Ñ 2001 года.
E.50.3. ÐзменениÑ
Ðиже Ð²Ñ Ð½Ð°Ð¹Ð´ÑÑе подÑобнÑй ÑпиÑок изменений, пÑоизоÑедÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ Ð¿ÑедÑдÑÑим оÑновнÑм вÑпÑÑком и PostgreSQL 10.
E.50.3.1. СеÑвеÑ
E.50.3.1.1. ÐаÑаллелÑное вÑполнение запÑоÑов
ÐоддеÑжка паÑаллелÑного ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½Ð´ÐµÐºÑов Ñипа B-деÑево (Ð Ð°Ñ Ð¸Ð»Ð° СÑед, ÐÐ¼Ð¸Ñ Ðапила, РобеÑÑ Ð¥Ð°Ð°Ñ, РаÑÐ¸Ñ Ð¡Ð°Ð±Ð¸Ñ )
ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ Ð¿Ð¾Ð¸Ñк в ÑÑÑаниÑÐ°Ñ Ð¸Ð½Ð´ÐµÐºÑа-B-деÑева могÑÑ Ð¿ÑоизводиÑÑ Ð¿Ð°ÑаллелÑно неÑколÑко ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов.
ÐоддеÑжка паÑаллелÑного ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÑÑи по биÑовой каÑÑе (Ðилип ÐÑмаÑ)
ÐÑо позволÑÐµÑ ÑаÑпÑеделиÑÑ Ð¾Ð´Ð½Ð¾ ÑканиÑование индекÑа Ð¼ÐµÐ¶Ð´Ñ Ð¿Ð°ÑаллелÑнÑми иÑполниÑелÑми, обÑабаÑÑваÑÑими ÑазнÑе облаÑÑи кÑÑи.
Реализована возможноÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑлиÑнием в паÑаллелÑном Ñежиме (Ðилип ÐÑмаÑ)
Реализована возможноÑÑÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð½ÐµÑвÑзаннÑÑ Ð·Ð°Ð¿ÑоÑов в паÑаллелÑном Ñежиме (ÐÐ¼Ð¸Ñ Ðапила)
УлÑÑÑение возможноÑÑи паÑаллелÑнÑÑ Ð¿ÑоÑеÑÑов возвÑаÑаÑÑ Ñанее оÑÑоÑÑиÑованнÑе даннÑе (Ð ÑÑаб ÐаÑиа)
РаÑÑиÑение иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°ÑаллелÑнÑÑ Ð·Ð°Ð¿ÑоÑов в ÑÑнкÑиÑÑ Ð¿ÑоÑедÑÑнÑÑ ÑзÑков (РобеÑÑ Ð¥Ð°Ð°Ñ, РаÑÐ¸Ñ Ð¡Ð°Ð±Ð¸Ñ )
Ðобавление ÑеÑвеÑного паÑамеÑÑа max_parallel_workers Ð´Ð»Ñ Ð¾Ð³ÑаниÑÐµÐ½Ð¸Ñ ÑиÑла ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, коÑоÑÑе могÑÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов (ÐÑлÑен Ð Ñо)
ÐнаÑение ÑÑого паÑамеÑÑа можно ÑделаÑÑ Ð¼ÐµÐ½ÑÑе max_worker_processes, ÑÑÐ¾Ð±Ñ Ð·Ð°ÑезеÑвиÑоваÑÑ ÑабоÑие пÑоÑеÑÑÑ Ð´Ð»Ñ Ð´ÑÑÐ³Ð¸Ñ Ñелей, кÑоме паÑаллелÑнÑÑ Ð·Ð°Ð¿ÑоÑов.
ÐклÑÑение ÑаÑпаÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ (знаÑение по ÑмолÑÐ°Ð½Ð¸Ñ Ð¿Ð°ÑамеÑÑа max_parallel_workers_per_gather ÑÑало Ñавно
2).
E.50.3.1.2. ÐндекÑÑ
Ðобавление ÑегиÑÑÑаÑии в жÑÑнале пÑедзапиÑи опеÑаÑий Ñ Ñ ÐµÑ-индекÑами (ÐÐ¼Ð¸Ñ Ðапила)
Ð ÑезÑлÑÑаÑе Ñ ÐµÑ-индекÑÑ ÑÑановÑÑÑÑ Ð¾ÑказоÑÑÑойÑивÑми и пÑигоднÑми к ÑепликаÑии. ÐÑежнее пÑедоÑÑеÑежение оÑноÑиÑелÑно Ð¸Ñ Ð¸ÑполÑзование Ñдалено.
УлÑÑÑение пÑоизводиÑелÑноÑÑи Ñ ÐµÑ-индекÑа (ÐÐ¼Ð¸Ñ Ðапила, ÐиÑÑ Ñн Сай, ÐÑÑÑÐ¾Ñ Ð¨Ð°Ñма)
Ðобавление поддеÑжки индекÑов SP-GiST Ð´Ð»Ñ Ñипов даннÑÑ
INETиCIDR(ÐмÑе ХаÑегели)Ðобавление паÑамеÑÑа Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ акÑивного вÑÑиÑÐ»ÐµÐ½Ð¸Ñ ÑводнÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð½Ð´ÐµÐºÑа BRIN (ÐлÑваÑо ÐÑÑеÑа)
ÐовÑй паÑамеÑÑ
CREATE INDEXпозволÑÐµÑ Ð°Ð²ÑомаÑиÑеÑки обновлÑÑÑ ÑводнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ Ð´Ð»Ñ Ð¿ÑедÑдÑÑей Ð·Ð¾Ð½Ñ ÑÑÑÐ°Ð½Ð¸Ñ BRIN пÑи Ñоздании новой зонÑ.Ðобавление ÑÑнкÑий Ð´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¸ повÑоÑного Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑводнÑÑ Ð·Ð°Ð¿Ð¸Ñей BRIN Ð´Ð»Ñ Ð·Ð¾Ð½ индекÑа BRIN (ÐлÑваÑо ÐÑÑеÑа)
ÐÐ¾Ð²Ð°Ñ SQL-ÑÑнкÑиÑ
brin_summarize_range()обновлÑÐµÑ ÑводнÑе запиÑи индекÑа BRIN Ð´Ð»Ñ Ð¾Ð¿ÑеделÑнной зонÑ, аbrin_desummarize_range()ÑдалÑÐµÑ Ð¸Ñ . ÐÑо полезно Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð·Ð¾Ð½Ñ, коÑоÑÐ°Ñ ÑÑала менÑÑе в ÑезÑлÑÑаÑе дейÑÑÐ²Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´UPDATEиDELETE.Ðолее ÑоÑнÑй ÑаÑÑÑÑ Ð²ÑÐ³Ð¾Ð´Ñ Ð¾Ñ Ð¿ÑÐ¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑканиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ индекÑÑ BRIN (ÐÑвид РоÑли, ÐмÑе ХаÑегели)
УÑкоÑение опеÑаÑий Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ð¸Ñей в GiST благодаÑÑ Ð±Ð¾Ð»ÐµÐµ ÑÑÑекÑÐ¸Ð²Ð½Ð¾Ð¼Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿ÑоÑÑÑанÑÑва индекÑа (ÐндÑей ÐоÑодин)
ÐинимизаÑÐ¸Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовок ÑÑÑÐ°Ð½Ð¸Ñ Ð¿Ñи оÑиÑÑке индекÑов GIN (ÐндÑей ÐоÑодин)
E.50.3.1.3. ÐлокиÑовки
СокÑаÑение блокиÑовок, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼ÑÑ Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ð°ÑамеÑÑов ÑÐ°Ð±Ð»Ð¸Ñ (Саймон РиггÑ, ФабÑиÑио де Ð Ð¾Ð¹ÐµÑ Ðелло)
ÐапÑимеÑ, измениÑÑ Ð¿Ð°ÑамеÑÑ effective_io_concurrency Ð´Ð»Ñ ÑаблиÑÑ ÑепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ Ñ Ð±Ð¾Ð»ÐµÐµ лÑгкой блокиÑовкой.
РеализаÑÐ¸Ñ ÑегÑлиÑовки пÑеделов Ð´Ð»Ñ Ð¿Ð¾Ð²ÑÑÐµÐ½Ð¸Ñ ÑÑÐ¾Ð²Ð½Ñ Ð¿ÑедикаÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок (ÐагÑинн ÐлÑмаÑи ÐаннÑакеÑ)
ÐовÑÑением ÑÑÐ¾Ð²Ð½Ñ Ð±Ð»Ð¾ÐºÐ¸Ñовок ÑепеÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ ÑпÑавлÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´Ð²ÑÑ Ð½Ð¾Ð²ÑÑ Ð¿Ð°ÑамеÑÑов ÑеÑвеÑа, max_pred_locks_per_relation и max_pred_locks_per_page.
E.50.3.1.4. ÐпÑимизаÑоÑ
Ðобавление ÑÑаÑиÑÑики по неÑколÑким ÑÑолбÑам, позволÑÑÑей вÑÑиÑлÑÑÑ ÐºÐ¾ÑÑÑиÑÐ¸ÐµÐ½Ñ ÐºÐ¾ÑÑелÑÑии и ÑиÑло ÑазлиÑнÑÑ Ð·Ð½Ð°Ñений (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа, ÐÑвид РоÑли, ÐлÑваÑо ÐÑÑеÑа)
ÐоÑвилиÑÑ Ð½Ð¾Ð²Ñе командÑ:
CREATE STATISTICS,ALTER STATISTICSиDROP STATISTICS. ÐÑо полезно Ð´Ð»Ñ Ð¾Ñенки иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи запÑоÑом и Ð´Ð»Ñ ÐºÐ¾Ð½ÑолидаÑии ÑÑаÑиÑÑики по оÑделÑнÑм ÑÑолбÑам.УвелиÑение пÑоизводиÑелÑноÑÑи запÑоÑов, ÑÑалкиваÑÑÐ¸Ñ ÑÑ Ñ Ð¾Ð³ÑаниÑениÑми заÑиÑÑ Ð½Ð° ÑÑовне ÑÑÑок (Том Ðейн)
ТепеÑÑ Ð¾Ð¿ÑимизаÑÐ¾Ñ Ð»ÑÑÑе понимаеÑ, кÑда можно помеÑÑиÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑилÑÑÑа RLS, благодаÑÑ ÑÐµÐ¼Ñ Ð¾Ð½ Ð¼Ð¾Ð¶ÐµÑ ÑÑÑоиÑÑ Ð»ÑÑÑие планÑ, пÑи ÑÑом гаÑанÑиÑÑÑ Ð²Ñполнение ÑÑловий RLS.
E.50.3.1.5. ÐбÑÐ°Ñ Ð¿ÑоизводиÑелÑноÑÑÑ
УÑкоÑение агÑегаÑнÑÑ ÑÑнкÑий, коÑоÑÑе вÑÑиÑлÑÑÑ ÑÑÐ¼Ð¼Ñ Ñ Ð½Ð°ÐºÐ¾Ð¿Ð»ÐµÐ½Ð¸ÐµÐ¼, иÑполÑзÑÑ Ð°ÑиÑмеÑÐ¸ÐºÑ Ñипа
numeric, вклÑÑÐ°Ñ Ð½ÐµÐºÐ¾ÑоÑÑе ваÑиаÑииSUM(),AVG()иSTDDEV()(Хейкки ÐиннакангаÑ)УвелиÑение ÑкоÑоÑÑи пÑеобÑазований кодиÑовок Ñимволов Ñ Ð¸ÑполÑзованием ÑиÑÑовÑÑ Ð´ÐµÑевÑев (ÐÑÑаÑо ХоÑигÑÑи, Хейкки ÐиннакангаÑ)
УменÑÑение издеÑжек вÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð²ÑÑажений пÑи вÑполнении запÑоÑов, а Ñакже издеÑжек обÑаÑÐµÐ½Ð¸Ñ Ðº ÑÐ·Ð»Ñ Ð¿Ð»Ð°Ð½Ð° (ÐндÑÐµÑ Ð¤Ñойнд)
ÐÑо оÑобенно полезно Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑов, обÑабаÑÑваÑÑÐ¸Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑÑÑок.
ÐозможноÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð°Ð³ÑегиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾ Ñ ÐµÑÑ Ð¿Ñи обÑабоÑке набоÑов гÑÑппиÑÐ¾Ð²Ð°Ð½Ð¸Ñ (ÐндÑÑ ÐиÑÑ)
ÐÑполÑзование гаÑанÑий ÑникалÑноÑÑи Ð´Ð»Ñ Ð¾Ð¿ÑимизаÑии опÑеделÑннÑÑ Ñипов Ñоединений (ÐÑвид РоÑли)
УÑкоÑение ÑоÑÑиÑовки Ñипа даннÑÑ
macaddr(ÐÑандÑÑ ÐиÑ)СокÑаÑение издеÑжек на оÑÑлеживание ÑÑаÑиÑÑики в ÑеанÑÐ°Ñ , когда задейÑÑвÑÑÑÑÑ ÑÑÑÑÑи оÑноÑений (ÐлекÑÐ°Ð½Ð´Ñ ÐлекÑеев)
E.50.3.1.6. ÐониÑоÑинг
ÐозможноÑÑÑ Ñвного ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¾ÑобÑажением командой
EXPLAINвÑемени планиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ (ÐÑÑÑÐ¾Ñ ÐапаÑ)Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð²ÑÐµÐ¼Ñ Ð¿Ð»Ð°Ð½Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²ÑводиÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
EXPLAIN ANALYZEи не вÑводиÑÑÑ Ð² дÑÑÐ³Ð¸Ñ ÑлÑÑаÑÑ . Явно ÑпÑавлÑÑÑ ÑÑим позволÑÐµÑ Ð½Ð¾Ð²Ñй паÑамеÑÑSUMMARYкомандÑEXPLAIN.ÐÐ¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ Ð½Ð¾Ð²Ñе ÑÑандаÑÑнÑе Ñоли Ð´Ð»Ñ Ð¼Ð¾Ð½Ð¸ÑоÑинга (Ðейв Ðейдж)
ÐовÑе Ñоли
pg_monitor,pg_read_all_settings,pg_read_all_statsиpg_stat_scan_tablesпозволÑÑÑ ÑпÑоÑÑиÑÑ ÐºÐ¾Ð½ÑигÑÑаÑÐ¸Ñ ÑазÑеÑений.ÐÑпÑавление пеÑедаÑи инÑоÑмаÑии ÑбоÑÑÐ¸ÐºÑ ÑÑаÑиÑÑики во вÑемÑ
REFRESH MATERIALIZED VIEW(Ðжим ÐлодженÑки)
E.50.3.1.6.1. Ðедение жÑÑнала
Ðзменение пÑеÑикÑа log_line_prefix, ÑÑÐ¾Ð±Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñе ÑÑÑоки жÑÑнала postmaster ÑодеÑжали ÑекÑÑее вÑÐµÐ¼Ñ (Ñ Ð¼Ð¸Ð»Ð»Ð¸ÑекÑндами) и иденÑиÑикаÑÐ¾Ñ Ð¿ÑоÑеÑÑа (ÐÑиÑÑÐ¾Ñ ÐеÑг)
Ранее пÑеÑÐ¸ÐºÑ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð±Ñл пÑÑÑÑм.
Ðобавление ÑÑнкÑий Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÑодеÑжимого каÑалогов жÑÑнала ÑообÑений и WAL (Ðейв Ðейдж)
ÐовÑе ÑÑнкÑии назÑваÑÑÑÑ ÑооÑвеÑÑÑвенно
pg_ls_logdir()иpg_ls_waldir()и могÑÑ Ð²ÑполнÑÑÑÑÑ Ð½Ðµ ÑолÑко ÑÑпеÑполÑзоваÑелÑми (пÑи налиÑии доÑÑаÑоÑнÑÑ ÑазÑеÑений).Ðобавление ÑÑнкÑии
pg_current_logfile()Ð´Ð»Ñ ÑÑÐµÐ½Ð¸Ñ Ð¸Ð¼Ñн ÑекÑÑÐ¸Ñ Ñайлов, в коÑоÑÑе ÑбоÑÑик ÑообÑений вÑÐ²Ð¾Ð´Ð¸Ñ Ð¿Ð¾Ñоки stderr и csvlog (ÐÐ¸Ð»Ñ ÐаÑолд)ÐÑвод в жÑÑнал ÑеÑвеÑа адÑеÑа и номеÑа поÑÑа Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ пÑинимаÑÑего ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ ÑокеÑа пÑи запÑÑке postmaster (Том Ðейн)
Также добавление в ÑообÑение об оÑибке пÑивÑзки к опÑеделÑÐ½Ð½Ð¾Ð¼Ñ ÑокеÑÑ Ð°Ð´ÑеÑа ÑÑого ÑокеÑа.
УÑÑÑанение лиÑÐ½Ð¸Ñ ÑообÑений о запÑÑке и оÑÑановке подпÑоÑеÑÑов запÑÑкаÑÑего пÑоÑеÑÑа (Том Ðейн)
ТепеÑÑ ÑÑÐ¾Ð²ÐµÐ½Ñ ÑÑÐ¸Ñ ÑообÑений понижен до
DEBUG1.УменÑÑение ÑÑÐ¾Ð²Ð½Ñ Ð²Ð°Ð¶Ð½Ð¾ÑÑи ÑообÑений Ð´Ð»Ñ ÑÑовней оÑладки, конÑÑолиÑÑемÑÑ Ð¿Ð°ÑамеÑÑом log_min_messages (РобеÑÑ Ð¥Ð°Ð°Ñ)
ÐÑо заÑÑÐ°Ð³Ð¸Ð²Ð°ÐµÑ Ñакже ÑообÑÐµÐ½Ð¸Ñ Ð¾ÑладоÑнÑÑ ÑÑовней client_min_messages.
E.50.3.1.6.2. ÐÑедÑÑавление pg_stat_activity
Ðобавление в
pg_stat_activityинÑоÑмаÑии о ÑоÑÑоÑнии низкоÑÑовневÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ð¹ (ÐикаÑÐ»Ñ ÐакÑе, РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÑо позволÑÐµÑ Ð¾ÑÑлеживаÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑобÑÑий Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð½Ð° низком ÑÑовне, вклÑÑÐ°Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð·Ð°ÑÑлок, запиÑи/ÑÑениÑ/ÑбÑоÑа Ñайлов, ÑÑениÑ/запиÑи Ñо ÑÑоÑÐ¾Ð½Ñ ÐºÐ»Ð¸ÐµÐ½Ñа и ÑÐ¸Ð½Ñ Ñонной ÑепликаÑии.
ÐÑобÑажение в
pg_stat_activityвÑпомогаÑелÑнÑÑ Ð¸ ÑоновÑÑ ÑабоÑÐ¸Ñ Ð¿ÑоÑеÑÑов, а Ñакже пÑоÑеÑÑов-пеÑедаÑÑиков WAL (ÐÑнÑал ÐÑ Ð¾Ñ, ÐикаÑÐ»Ñ ÐакÑе)ÐÑо ÑпÑоÑÐ°ÐµÑ Ð¼Ð¾Ð½Ð¸ÑоÑинг. Тип пÑоÑеÑÑа обознаÑаеÑÑÑ Ð² новом ÑÑолбÑе
backend_type.Ð
pg_stat_activityÑеализовано оÑобÑажение SQL-запÑоÑов, вÑполнÑемÑÑ Ð¿Ð°ÑаллелÑнÑми иÑполниÑелÑми (РаÑÐ¸Ñ Ð¡Ð°Ð±Ð¸Ñ )ÐеÑеименование в
pg_stat_activity.wait_event_typeзнаÑенийLWLockTrancheиLWLockNamedвLWLock(РобеÑÑ Ð¥Ð°Ð°Ñ)ÐÑо Ð´ÐµÐ»Ð°ÐµÑ Ð²Ñвод более ÑоглаÑованнÑм.
E.50.3.1.7. ÐÑÑенÑиÑикаÑиÑ
Ðобавление поддеÑжки SCRAM-SHA-256 Ð´Ð»Ñ Ð¿ÑовеÑки и Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¿Ð°Ñолей (ÐикаÑÐ»Ñ ÐакÑе, Хейкки ÐиннакангаÑ)
ÐÑо обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð»ÑÑÑÑÑ Ð±ÐµÐ·Ð¾Ð¿Ð°ÑноÑÑÑ Ð¿Ð¾ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ñ ÑÑÑеÑÑвÑÑÑим меÑодом
md5.Ðзменение Ñипа ÑеÑвеÑного паÑамеÑÑа password_encryption Ñ
booleanнаenum(ÐикаÑÐ»Ñ ÐакÑе)ÐÑо поÑÑебовалоÑÑ Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки ÑазлиÑнÑÑ Ð²Ð°ÑианÑов Ñ ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð°Ñолей.
Ðобавление пÑедÑÑавлениÑ
pg_hba_file_rulesÐ´Ð»Ñ Ð¿ÑоÑмоÑÑа ÑодеÑжимогоpg_hba.conf(ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)ÐÑо пÑедÑÑавление показÑÐ²Ð°ÐµÑ ÑодеÑжимое Ñайла, а не дейÑÑвÑÑÑие в даннÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð°ÑамеÑÑÑ.
ÐоддеÑжка неÑколÑÐºÐ¸Ñ ÑеÑвеÑов RADIUS (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
ÐÑе ÑвÑзаннÑе Ñ RADIUS паÑамеÑÑÑ ÑепеÑÑ ÑÑали множеÑÑвеннÑми и пÑинимаÑÑ ÑпиÑок ÑеÑвеÑов ÑеÑез запÑÑÑÑ.
E.50.3.1.8. ÐонÑигÑÑаÑÐ¸Ñ ÑеÑвеÑа
ÐозможноÑÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑигÑÑаÑии SSL пÑи пеÑезагÑÑзке конÑигÑÑаÑии (ÐндÑÐµÐ°Ñ ÐаÑлÑÑон, Том Ðейн)
ÐÑо позволÑÐµÑ Ð¿ÐµÑеконÑигÑÑиÑоваÑÑ SSL без пеÑезапÑÑка ÑеÑвеÑа, иÑполÑзÑÑ
pg_ctl reload,SELECT pg_reload_conf()или оÑпÑавив ÑигналSIGHUP. Ðднако пеÑезагÑÑзка конÑигÑÑаÑии SSL не ÑÑабоÑаеÑ, еÑли Ð´Ð»Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ SSL-клÑÑа ÑеÑвеÑа ÑÑебÑеÑÑÑ Ð¿Ð°ÑолÑ, Ñак как никакой возможноÑÑи запÑоÑиÑÑ ÐµÐ³Ð¾ неÑ. Ð ÑÑом ÑлÑÑае главнÑй пÑоÑеÑÑ (postmaster) пÑÐ¾Ð´Ð¾Ð»Ð¶Ð¸Ñ Ð¸ÑполÑзоваÑÑ Ð¸Ð·Ð½Ð°ÑалÑнÑÑ ÐºÐ¾Ð½ÑигÑÑаÑиÑ, пока не бÑÐ´ÐµÑ Ð¿ÐµÑезапÑÑен.УÑÑÑанение пÑакÑиÑеÑкого пÑедела Ð´Ð»Ñ Ð¼Ð°ÐºÑималÑного знаÑÐµÐ½Ð¸Ñ bgwriter_lru_maxpages (Ðжим ÐÑÑби)
E.50.3.1.9. ÐадÑжноÑÑÑ
ÐоÑле ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñайлов ÑледÑÐµÑ Ð²ÑполнÑÑÑ fsync Ð´Ð»Ñ ÐºÐ°Ñалога Ð¸Ñ ÑодеÑжаÑего (ÐикаÑÐ»Ñ ÐакÑе)
ÐÑо ÑокÑаÑÐ°ÐµÑ ÑиÑк поÑеÑи даннÑÑ Ð¿Ñи оÑклÑÑении пиÑаниÑ.
E.50.3.1.9.1. ÐÑÑнал пÑедзапиÑи (WAL)
ÐÑедоÑвÑаÑение ненÑжнÑÑ ÐºÐ¾Ð½ÑÑолÑнÑÑ ÑоÑек и аÑÑ Ð¸Ð²Ð°Ñии WAL в пÑоÑÑаиваÑÑÐ¸Ñ ÑиÑÑÐµÐ¼Ð°Ñ (ÐикаÑÐ»Ñ ÐакÑе)
Ðобавление ÑеÑвеÑного паÑамеÑÑа wal_consistency_checking Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð¸Ñ Ð² WAL инÑоÑмаÑии, позволÑÑÑей пÑовеÑÑÑÑ ÑелоÑÑноÑÑÑ Ð½Ð° ведомом ÑеÑвеÑе (ÐÑнÑал ÐÑ Ð¾Ñ, РобеÑÑ Ð¥Ð°Ð°Ñ)
Ð ÑлÑÑае вÑÑÐ²Ð»ÐµÐ½Ð¸Ñ Ð»Ñбого наÑÑÑÐµÐ½Ð¸Ñ Ð¿Ñи пÑовеÑке ÑелоÑÑноÑÑи на ведомом ÑеÑвеÑе вÑдаÑÑÑÑ ÐºÑиÑиÑеÑÐºÐ°Ñ Ð¾Ñибка.
УвелиÑение макÑималÑно допÑÑÑимого ÑазмеÑа ÑегменÑа WAL до одного гигабайÑа (Ðина ÐмеÑÑон)
УвелиÑÐ¸Ð²Ð°Ñ ÑÐ°Ð·Ð¼ÐµÑ ÑегменÑов WAL, можно ÑокÑаÑиÑÑ ÑаÑÑоÑÑ Ð²Ñзова archive_command и ÑменÑÑиÑÑ ÑиÑло Ñайлов WAL.
E.50.3.2. РепликаÑÐ¸Ñ Ð¸ воÑÑÑановление
РеализаÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи логиÑеÑки ÑеплиÑиÑоваÑÑ ÑаблиÑÑ Ð½Ð° подÑинÑннÑе ÑеÑвеÑÑ (ÐеÑÑ Ðелинек)
ÐогиÑеÑÐºÐ°Ñ ÑепликаÑÐ¸Ñ Ð´Ð°ÑÑ Ð±Ð¾Ð»ÑÑÑÑ Ð³Ð¸Ð±ÐºÐ¾ÑÑÑ, Ñем ÑизиÑеÑкаÑ; в Ñом ÑиÑле позволÑÐµÑ Ð¾ÑганизовÑваÑÑ ÑепликаÑÐ¸Ñ Ð¼ÐµÐ¶Ð´Ñ ÑазнÑми оÑновнÑми веÑÑиÑми PostgreSQL, а Ñакже избиÑаÑелÑнÑÑ ÑепликаÑиÑ.
ÐозможноÑÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð´ÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ ÑикÑаÑии Ð¾Ñ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов вне завиÑимоÑÑи Ð¾Ñ Ð¸Ñ Ð¿Ð¾ÑÑдка в ÑпиÑке synchronous_standby_names (ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада)
Ранее ÑеÑÐ²ÐµÑ Ð²Ñегда ожидал оÑвеÑа Ð¾Ñ Ð°ÐºÑивнÑÑ Ð²ÐµÐ´Ð¾Ð¼ÑÑ ÑеÑвеÑов, ÑÑоÑÑÐ¸Ñ Ð¿ÐµÑвÑми в ÑпиÑке
synchronous_standby_names. Ðовое клÑÑевое ÑловоANYвsynchronous_standby_namesпозволÑÐµÑ Ð²ÑбÑаÑÑ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ðµ лÑбого ÑиÑла ÑеÑвеÑов, вне завиÑимоÑÑи Ð¾Ñ Ð¸Ñ Ð¿Ð¾ÑÑдка. ÐÑо назÑваеÑÑÑ ÑикÑаÑией на оÑнове квоÑÑма.УпÑоÑение изменений конÑигÑÑаÑии, коÑоÑÑе Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ внеÑÑи Ð´Ð»Ñ Ð¾ÑганизаÑии поÑокового копиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð¸ ÑепликаÑии (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ, Ðан Ðин Ð¥Ñонг)
Ð ÑаÑÑноÑÑи, бÑли Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¿Ð¾ ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑов wal_level, max_wal_senders, max_replication_slots и hot_standby, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ бÑли пÑÐ¸Ð³Ð¾Ð´Ð½Ñ Ð´Ð»Ñ Ñакого иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² иÑÑ Ð¾Ð´Ð½Ð¾Ð¼ ÑоÑÑоÑнии.
Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑепликаÑÐ¸Ñ ÑазÑеÑаеÑÑÑ Ð´Ð»Ñ Ð»Ð¾ÐºÐ°Ð»ÑнÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑений в
pg_hba.conf(ÐикаÑÐ»Ñ ÐакÑе)Ранее ÑÑÑоки Ð´Ð»Ñ Ñоединений ÑепликаÑии в
pg_hba.confпо ÑмолÑÐ°Ð½Ð¸Ñ Ð±Ñли закомменÑиÑованÑ. ÐÑо оÑобенно полезно Ð´Ð»Ñ pg_basebackup.Ðобавление в
pg_stat_replicationÑÑолбÑов Ñ Ð¸Ð½ÑоÑмаÑией о задеÑÐ¶ÐºÐ°Ñ ÑепликаÑии (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)ÐовÑе ÑÑолбÑÑ Ð½Ð°Ð·ÑваÑÑÑÑ
write_lag,flush_lagиreplay_lag.ÐозможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑоÑки оÑÑановки воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾ LSN (поÑледоваÑелÑÐ½Ð¾Ð¼Ñ Ð½Ð¾Ð¼ÐµÑÑ Ð² жÑÑнале) в
recovery.conf(ÐикаÑÐ»Ñ ÐакÑе)Ранее ÑоÑÐºÑ Ð¾ÑÑановки можно бÑло задаÑÑ ÑолÑко по вÑемени или иденÑиÑикаÑоÑÑ ÑÑанзакÑии.
ÐÑедоÑÑавление полÑзоваÑелÑм возможноÑÑи оÑклÑÑиÑÑ Ð² ÑÑнкÑии
pg_stop_backup()ожидание аÑÑ Ð¸Ð²Ð°Ñии вÑÐµÑ Ñайлов WAL (ÐÑвид СÑил)ÐÑим поведением ÑпÑавлÑÐµÑ Ð½ÐµÐ¾Ð±ÑзаÑелÑнÑй вÑоÑой аÑгÑÐ¼ÐµÐ½Ñ ÑÑнкÑии
pg_stop_backup().ÐозможноÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð²ÑеменнÑÑ ÑлоÑов ÑепликаÑии (ÐеÑÑ Ðелинек)
ÐÑеменнÑе ÑлоÑÑ Ð°Ð²ÑомаÑиÑеÑки ÑдалÑÑÑÑÑ Ð¿Ñи завеÑÑении ÑеанÑа или пÑи оÑибке.
УвелиÑение пÑоизводиÑелÑноÑÑи воÑпÑÐ¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð² Ñежиме гоÑÑÑего ÑезеÑва благодаÑÑ Ð¾Ð¿ÑимизаÑии обÑабоÑки иÑклÑÑиÑелÑнÑÑ Ð±Ð»Ð¾ÐºÐ¸Ñовок (Саймон РиггÑ, ÐÑвид РоÑли)
УÑкоÑение воÑÑÑÐ°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ñи двÑÑ Ñазной ÑикÑаÑии (СÑÐ°Ñ ÐелÑвиÑ, ÐÐ¸ÐºÑ Ð¸Ð» СонÑакке, ÐикаÑÐ»Ñ ÐакÑе)
E.50.3.3. ÐапÑоÑÑ
Ðобавление ÑÑнкÑии
XMLTABLE, пÑеобÑазÑÑÑей даннÑе в ÑоÑмаÑеXMLв Ð½Ð°Ð±Ð¾Ñ ÑаблиÑнÑÑ ÑÑÑок (Ðавел СÑÐµÑ Ñле, ÐлÑваÑо ÐÑÑеÑа)ÐÑпÑавление обÑабоÑки в ÑегÑлÑÑнÑÑ Ð²ÑÑажениÑÑ ÐºÐ»Ð°ÑÑов Ñимволов Ð´Ð»Ñ Ñимволов Ñ Ð±Ð¾Ð»ÑÑими кодами, в ÑаÑÑноÑÑи, Ð´Ð»Ñ Ñимволов Unicode болÑÑе
U+7FF(Том Ðейн)Ранее Ñакие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ð¸ÐºÐ¾Ð³Ð´Ð° не воÑпÑинималиÑÑ ÐºÐ°Ðº пÑинадлежаÑие клаÑÑам, завиÑÑÑим Ð¾Ñ Ð»Ð¾ÐºÐ°Ð»Ð¸, напÑимеÑ
[[:alpha:]].
E.50.3.4. СлÑжебнÑе командÑ
Ðобавление ÑинÑакÑиÑа ÑекÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкого ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð³ÑаниÑений ÑекÑий и ÑаÑпÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑий Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾ÑÑежей (ÐÐ¼Ð¸Ñ ÐангоÑе)
ÐÑÐ¾Ñ ÑинÑакÑÐ¸Ñ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑекÑиониÑование по ÑпиÑкам и по диапазонам.
Ðобавление Ð´Ð»Ñ ÑÑиггеÑов
AFTERпеÑÐµÑ Ð¾Ð´Ð½ÑÑ ÑаблиÑ, ÑодеÑжаÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÑннÑе ÑÑÑоки (Ðевин ÐÑиÑÑнеÑ, Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо)СодеÑжимое пеÑÐµÑ Ð¾Ð´Ð½ÑÑ ÑÐ°Ð±Ð»Ð¸Ñ Ð´Ð¾ÑÑÑпно в ÑÑиггеÑÐ°Ñ , напиÑаннÑÑ Ð½Ð° ÑзÑÐºÐ°Ñ Ð¿ÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑÑоÑоне ÑеÑвеÑа.
РеализаÑÐ¸Ñ Ð¾Ð³ÑаниÑиÑелÑнÑÑ Ð¿Ð¾Ð»Ð¸Ñик заÑиÑÑ Ð½Ð° ÑÑовне ÑÑÑок (СÑивен ФÑоÑÑ)
Ранее вÑе полиÑики бÑли ÑазÑеÑиÑелÑнÑми, Ñо еÑÑÑ Ð¿Ñи вÑполнении ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð»Ñбой полиÑики доÑÑÑп ÑазÑеÑалÑÑ. Ðо ÑепеÑÑ Ð¿Ñи невÑполнении огÑаниÑиÑелÑной полиÑики доÑÑÑп бÑÐ´ÐµÑ Ð·Ð°Ð¿ÑеÑÑн. ÐÑи ÑÐ¸Ð¿Ñ Ð¿Ð¾Ð»Ð¸Ñик можно комбиниÑоваÑÑ Ð²Ð¼ÐµÑÑе.
ÐÑи Ñоздании огÑаниÑÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑнего клÑÑа ÑазÑеÑение
REFERENCESдолжно ÑÑебоваÑÑÑÑ ÑолÑко Ð´Ð»Ñ Ñелевой ÑаблиÑÑ (Том Ðейн)Ранее Ñакже ÑÑебовалоÑÑ ÑазÑеÑение
REFERENCESв ÑаблиÑе внеÑнего клÑÑа. ÐÑо ÑÑебование бÑло Ñеализовано из-за Ð½ÐµÐ´Ð¾Ð¿Ð¾Ð½Ð¸Ð¼Ð°Ð½Ð¸Ñ SQL-ÑÑандаÑÑа. Так как Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð² ÑаблиÑе огÑаниÑÐµÐ½Ð¸Ñ Ð²Ð½ÐµÑнего клÑÑа (или подобного) ÑÑебÑÑÑÑÑ Ð¸Ð¼ÐµÑÑ Ð¿Ñава владелÑÑа ÑÑой ÑаблиÑÑ, дополниÑелÑное ÑÑебование ÑазÑеÑениÑREFERENCESкажеÑÑÑ Ð´Ð¾Ð²Ð¾Ð»Ñно беÑÑмÑÑленнÑм.РеализаÑÐ¸Ñ Ð¿Ñав по ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑÑ ÐµÐ¼ (ÐаÑеÑÑ ÐливейÑа)
ÐÑи пÑава задаÑÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾Ð¹
ALTER DEFAULT PRIVILEGES.Ðобавление командÑ
CREATE SEQUENCE ASÐ´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾ÑледоваÑелÑноÑÑей опÑеделÑнного ÑелоÑиÑленного Ñипа даннÑÑ (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑо ÑпÑоÑÐ°ÐµÑ Ñоздание поÑледоваÑелÑноÑÑей Ñ Ð¸Ð½ÑеÑвалом знаÑений, ÑооÑвеÑÑÑвÑÑÑим ÑÐ¸Ð¿Ñ Ð±Ð°Ð·Ð¾Ð²ÑÑ ÑÑолбÑов.
ÐоддеÑжка командÑ
COPYÐ´Ð»Ñ Ð¿ÑедÑÑавлений Ñ ÑÑиггеÑамипÑедÑÑавлениеFROMиÑÑоÑникINSTEAD INSERT(ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)ТÑиггеÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ ÑÑÑоки даннÑÑ , коÑоÑÑе ÑиÑÐ°ÐµÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°
COPY.ÐопÑÑение ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¸Ð¼ÐµÐ½Ð¸ ÑÑнкÑии без аÑгÑменÑов в ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ DDL, еÑли ÑÑо Ð¸Ð¼Ñ ÑникалÑно (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
ÐапÑимеÑ, ÑепеÑÑ Ð´Ð¾Ð¿ÑÑкаеÑÑÑ Ñказание
DROP FUNCTIONÑ Ð¸Ð¼ÐµÐ½ÐµÐ¼ ÑÑнкÑии без аÑгÑменÑов, еÑли ÑÑÑеÑÑвÑÐµÑ ÑолÑко одна ÑÑнкÑÐ¸Ñ Ñ Ñаким именем. Такое поведение ÑÑебÑеÑÑÑ ÑÑандаÑÑом SQL.РеализаÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑдалÑÑÑ Ð½ÐµÑколÑко ÑÑнкÑий, опеÑаÑоÑов и агÑегаÑов одной командой
DROP(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐоддеÑжка пÑедложениÑ
IF NOT EXISTSв командаÑCREATE SERVER,CREATE USER MAPPINGиCREATE COLLATION(ÐнаÑÑаÑÐ¸Ñ ÐÑбенникова, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Ðобавление в вÑвод
VACUUM VERBOSEколиÑеÑÑва пÑопÑÑеннÑÑ Ð·Ð°Ð¼Ð¾ÑоженнÑÑ ÑÑÑÐ°Ð½Ð¸Ñ Ð¸ ÑÑаÑейÑего xmin (ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада, Саймон РиггÑ)ÐÑа инÑоÑмаÑÐ¸Ñ Ñакже вклÑÑаеÑÑÑ Ð² вÑвод Ñ log_autovacuum_min_duration.
УÑкоÑение ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐµÑнÑÑ Ð¿ÑÑÑÑÑ ÑÑÑÐ°Ð½Ð¸Ñ ÐºÑÑи в пÑоÑеÑÑе опеÑаÑии
VACUUM(ÐлаÑдио ФÑейÑе, ÐлÑваÑо ÐÑÑеÑа)
E.50.3.5. Ð¢Ð¸Ð¿Ñ Ð´Ð°Ð½Ð½ÑÑ
Ðобавление поддеÑжки полноÑекÑÑового поиÑка Ð´Ð»Ñ Ñипов
JSONиJSONB(ÐмиÑÑий Ðолгов)С ÑÑими Ñипами даннÑÑ ÑепеÑÑ Ð¼Ð¾Ð³ÑÑ Ð¸ÑполÑзоваÑÑÑÑ ÑÑнкÑии
ts_headline()иto_tsvector().Ðобавление поддеÑжки MAC-адÑеÑов EUI-64 в виде нового Ñипа даннÑÑ
macaddr8(ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми)ÐÑÐ¾Ñ Ñип дополнÑÐµÑ Ñанее ÑеализованнÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ MAC-адÑеÑов EUI-48 (Ñип
macaddr).Ðобавление ÑÑолбÑов иденÑиÑикаÑии Ð´Ð»Ñ Ð½Ð°Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ ÑиÑловÑÑ Ð·Ð½Ð°Ñений ÑÑолбÑам пÑи добавлении даннÑÑ (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
ÐÑÐ¾Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼ подобен ÑÑолбÑам
SERIAL, но ÑооÑвеÑÑÑвÑÐµÑ ÑÑандаÑÑÑ SQL.РеализаÑÐ¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи пеÑеименовÑваÑÑ Ð·Ð½Ð°ÑениÑ
ENUM(ÐагÑинн ÐлÑмаÑи ÐаннÑакеÑ)ÐÐ»Ñ ÑÑого иÑполÑзÑеÑÑÑ ÑинÑакÑиÑ
ALTER TYPE ... RENAME VALUE.ÐÑпÑавление обÑаÑÐµÐ½Ð¸Ñ Ñ Ð¿ÑевдоÑипами маÑÑивов (
anyarray) как Ñ Ð¼Ð°ÑÑивами в ÑÑнкÑиÑÑto_json()иto_jsonb()(ÐндÑÑ ÐÑнÑÑан)Ранее ÑÑолбÑÑ, обÑÑвленнÑе как
anyarray, (в ÑаÑÑноÑÑи, ÑÑолбÑÑ Ð² пÑедÑÑавленииpg_stats) пÑеобÑазовÑвалиÑÑ Ð½Ðµ в маÑÑивÑ, а в ÑÑÑокиJSON.Ðобавление опеÑаÑоÑов Ð´Ð»Ñ ÑÐ¼Ð½Ð¾Ð¶ÐµÐ½Ð¸Ñ Ð¸ Ð´ÐµÐ»ÐµÐ½Ð¸Ñ Ð·Ð½Ð°Ñений
moneyна знаÑениÑint8(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Ранее в ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð·Ð½Ð°ÑениÑ
int8пÑиводилиÑÑ Ðº ÑипÑfloat8, а заÑем иÑполÑзовалиÑÑ Ð¾Ð¿ÐµÑаÑоÑÑmoney-и-float8. Ðовое поведение пÑедÑпÑÐµÐ¶Ð´Ð°ÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½ÑÑ Ð¿Ð¾ÑеÑÑ ÑоÑноÑÑи. Ðо замеÑÑÑе, ÑÑо пÑи деленииmoneyнаint8ÑепеÑÑ Ð´ÑÐ¾Ð±Ð½Ð°Ñ ÑаÑÑÑ Ð¾ÑбÑаÑÑваеÑÑÑ, как и в дÑÑÐ³Ð¸Ñ ÑлÑÑаÑÑ ÑелоÑиÑленного делениÑ, Ñогда как Ñанее пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð¾ окÑÑгление.ÐÑовеÑка пеÑÐµÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð² ÑÑнкÑии ввода Ñипа
money(ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
E.50.3.6. ФÑнкÑии
Ðобавление ÑпÑоÑÑнной ÑÑнкÑии
regexp_match()(ÐмÑе ХаÑегели)ÐÑа ÑÑнкÑÐ¸Ñ Ð¿Ð¾Ð´Ð¾Ð±Ð½Ð°
regexp_matches(), но возвÑаÑÐ°ÐµÑ ÑолÑко ÑезÑлÑÑаÑÑ Ð¿ÐµÑвого Ð²Ñ Ð¾Ð¶Ð´ÐµÐ½Ð¸Ñ, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ ÐµÑ ÑезÑлÑÑаÑа не ÑÑебÑеÑÑÑ Ð¼Ð½Ð¾Ð¶ÐµÑÑво, Ñак ÑÑо ÐµÑ Ñдобнее иÑполÑзоваÑÑ Ð² пÑоÑÑÑÑ ÑлÑÑаÑÑ .ÐÐ¾Ð²Ð°Ñ Ð²ÐµÑÑÐ¸Ñ Ð¾Ð¿ÐµÑаÑоÑа ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð»Ñ
jsonb, пÑинимаÑÑÐ°Ñ Ð¼Ð°ÑÑив клÑÑей Ð´Ð»Ñ ÑÐ´Ð°Ð»ÐµÐ½Ð¸Ñ (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)РеализаÑÐ¸Ñ ÑекÑÑÑивной обÑабоÑки обÑекÑов и маÑÑивов JSON в ÑÑнкÑии
json_populate_record()и ÑодÑÑвеннÑÑ ÐµÐ¹ (ÐикиÑа ÐлÑÑ Ð¾Ð²)ÐлагодаÑÑ ÑÑÐ¾Ð¼Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¼Ð°ÑÑÐ¸Ð²Ñ JSON коÑÑекÑно пÑеобÑазÑÑÑÑÑ Ð² полÑ-маÑÑÐ¸Ð²Ñ Ð² Ñелевом Ñипе SQL, а обÑекÑÑ JSON â в полÑ, пÑедÑÑавлÑÑÑие Ñобой ÑоÑÑавнÑе ÑипÑ. Ранее в ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ Ð¿ÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð° оÑибка пÑи попÑÑке пеÑедаÑÑ ÑÑÑоковое пÑедÑÑавление JSON-знаÑÐµÐ½Ð¸Ñ ÑÑнкÑиÑм
array_in()иrecord_in(), Ñак как ÑинÑакÑÐ¸Ñ Ð¿Ð¾Ð»ÑÑенной ÑÑÑоки не ÑооÑвеÑÑÑвовал Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð¾Ð¼Ñ ÑÑими ÑÑнкÑиÑми.Ðобавление ÑÑнкÑии
txid_current_if_assigned(), возвÑаÑаÑÑей иденÑиÑикаÑÐ¾Ñ ÑекÑÑей ÑÑанзакÑии илиNULL, еÑли ÑÑанзакÑии не пÑиÑвоен иденÑиÑикаÑÐ¾Ñ (ÐÑейг РингеÑ)ÐÑим Ð´Ð°Ð½Ð½Ð°Ñ ÑÑнкÑÐ¸Ñ Ð¾ÑлиÑаеÑÑÑ Ð¾Ñ
txid_current(), коÑоÑÐ°Ñ Ð²Ñегда возвÑаÑÐ°ÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÑÑанзакÑии (назнаÑÐ°Ñ ÐµÐ³Ð¾, еÑли он оÑÑÑÑÑÑвÑеÑ). ÐаннÑÑ ÑÑнкÑиÑ, в оÑлиÑие Ð¾Ñ Ð½ÐµÑ, можно вÑполнÑÑÑ Ð½Ð° ведомÑÑ ÑеÑвеÑÐ°Ñ .Ðобавление ÑÑнкÑии
txid_status(), пÑовеÑÑÑÑей, бÑла ли заÑикÑиÑована ÑÑанзакÑÐ¸Ñ (ÐÑейг РингеÑ)ÐÑо позволÑÐµÑ Ð¿ÑовеÑиÑÑ Ð¿Ð¾Ñле неожиданного обÑÑва ÑоединениÑ, бÑла ли заÑикÑиÑована пÑедÑдÑÑÐ°Ñ ÑÑанзакÑиÑ, еÑли Ð²Ñ Ð¿ÑоÑÑо не ÑÑпели полÑÑиÑÑ Ñведомление об ÑÑом.
Ðобавление ÑÑнкÑии
make_date(), инÑеÑпÑеÑиÑÑÑÑей оÑÑиÑаÑелÑнÑе ÑиÑла, как Ð³Ð¾Ð´Ñ Ð´Ð¾ наÑей ÑÑÑ (ÐлÑваÑо ÐÑÑеÑа)ФÑнкÑии
to_timestamp()иto_date()не Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑинимаÑÑ Ð¿Ð¾Ð»Ñ Ð²Ð½Ðµ допÑÑÑимÑÑ Ð¿Ñеделов (ÐÑÑÑÑ ÐакиÑов)ÐапÑимеÑ, Ñанее вÑзов
to_date('2009-06-40','YYYY-MM-DD')вÑполнÑлÑÑ ÑÑпеÑно и возвÑаÑалаÑÑ Ð´Ð°Ñа2009-07-10. ТепеÑÑ Ñ Ñакими аÑгÑменÑами бÑÐ´ÐµÑ Ð²ÑдаваÑÑÑÑ Ð¾Ñибка.
E.50.3.7. ЯзÑки пÑогÑаммиÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð° ÑÑоÑоне ÑеÑвеÑа
ÐозможноÑÑÑ Ð²ÑзÑваÑÑ ÑÑнкÑии
cursor()иexecute()в PL/Python как меÑÐ¾Ð´Ñ Ð¸Ñ Ð°ÑгÑменÑа â обÑекÑа plan (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)ÐÑо позволÑÐµÑ Ð¿ÑидеÑживаÑÑÑÑ Ð±Ð¾Ð»ÐµÐµ обÑекÑно-оÑиенÑиÑованного ÑÑÐ¸Ð»Ñ Ð¿ÑогÑаммиÑованиÑ.
Реализована возможноÑÑÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑаÑоÑа
GET DIAGNOSTICSв PL/pgSQL в ÑлеменÑÐ°Ñ Ð¼Ð°ÑÑива (Том Ðейн)Ранее ÑинÑакÑиÑеÑкое огÑаниÑение не допÑÑкало иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² каÑеÑÑве Ñелевой пеÑеменной ÑлеменÑа маÑÑива.
E.50.3.7.1. PL/Tcl
ÐозможноÑÑÑ Ð²Ð¾Ð·Ð²ÑаÑаÑÑ ÑоÑÑавнÑе ÑÐ¸Ð¿Ñ Ð¸ набоÑÑ Ð´Ð°Ð½Ð½ÑÑ Ð¸Ð· ÑÑнкÑий PL/Tcl (ÐаÑл ÐÐµÑ ÐµÐ½Ð±Ð°ÑÑÑ)
Ðобавление ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ subtransaction в PL/Tcl (ÐикÑÐ¾Ñ ÐагнеÑ)
ÐÑо позволÑÐµÑ Ð¾Ð±ÑабоÑаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð² запÑоÑÐ°Ñ PL/Tcl, не пÑеÑÑÐ²Ð°Ñ Ð²ÑÑ ÑÑнкÑиÑ.
Ðобавление ÑеÑвеÑнÑÑ Ð¿Ð°ÑамеÑÑов pltcl.start_proc и pltclu.start_proc Ð´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÑÑнкÑий иниÑиализаÑии, коÑоÑÑе бÑдÑÑ Ð²ÑзÑваÑÑÑÑ Ð¿Ñи запÑÑке PL/Tcl (Том Ðейн)
E.50.3.8. ÐлиенÑÑкие инÑеÑÑейÑÑ
Реализована возможноÑÑÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð½ÐµÑколÑÐºÐ¸Ñ Ð°Ð´ÑеÑов или имÑн ÑеÑвеÑов в ÑÑÑÐ¾ÐºÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq и в ÑÑÑÐ¾ÐºÐ°Ñ URI (РобеÑÑ Ð¥Ð°Ð°Ñ, Хейкки ÐиннакангаÑ)
ФÑнкÑии libpq бÑдÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑаÑÑÑÑ Ðº пеÑÐ²Ð¾Ð¼Ñ ÑабоÑоÑпоÑÐ¾Ð±Ð½Ð¾Ð¼Ñ ÑÐ·Ð»Ñ Ð¸Ð· ÑÑого ÑпиÑка.
Ð ÑÑÑÐ¾ÐºÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq и URI добавлена возможноÑÑÑ Ð·Ð°ÑÑебоваÑÑ ÑеÑÐ²ÐµÑ Ð´Ð»Ñ ÑÑениÑ/запиÑи, Ñо еÑÑÑ Ð²ÐµÐ´ÑÑий, а не ведомÑй ÑеÑÐ²ÐµÑ (ÐикÑÐ¾Ñ ÐагнеÑ, ÐиÑÑ Ñн Сай)
ÐÑо полезно пÑи Ñказании неÑколÑÐºÐ¸Ñ Ð¸Ð¼Ñн Ñзлов. СооÑвеÑÑÑвÑÑÑий паÑамеÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq â
target_session_attrs.Реализована возможноÑÑÑ Ð·Ð°Ð´Ð°Ð²Ð°ÑÑ Ð² паÑамеÑÑÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ libpq Ð¸Ð¼Ñ Ñайла паÑолей (ÐжÑлиан ÐаÑквоÑÑ)
Ранее его можно бÑло задаÑÑ ÑолÑко в пеÑеменной окÑÑжениÑ.
Ðобавлена ÑÑнкÑиÑ
PQencryptPasswordConn(), позволÑÑÑÐ°Ñ ÑоздаваÑÑ Ð±Ð¾Ð»ÑÑе видов заÑиÑÑованнÑÑ Ð¿Ð°Ñолей на ÑÑоÑоне клиенÑа (ÐикаÑÐ»Ñ ÐакÑе, Хейкки ÐиннакангаÑ)Ранее ÑÑнкÑией
PQencryptPassword()можно бÑло ÑоздаваÑÑ ÑолÑко паÑоли, заÑиÑÑованнÑеMD5. ÐÐ¾Ð²Ð°Ñ ÑÑнкÑÐ¸Ñ Ð¼Ð¾Ð¶ÐµÑ Ñакже ÑоздаваÑÑ Ð¸ паÑоли, заÑиÑÑованнÑе меÑодомSCRAM-SHA-256.Ðзменение веÑÑии пÑепÑоÑеÑÑоÑа ecpg Ñ 4.12 на 10 (Том Ðейн)
ÐпÑÐµÐ´Ñ Ð²ÐµÑÑÐ¸Ñ ecpg бÑÐ´ÐµÑ ÑооÑвеÑÑÑвоваÑÑ Ð½Ð¾Ð¼ÐµÑÑ Ð²ÐµÑÑии диÑÑÑибÑÑива PostgreSQL.
E.50.3.9. ÐлиенÑÑкие пÑиложениÑ
E.50.3.9.1. psql
Ðобавлена поддеÑжка ÑÑловнÑÑ Ð²ÐµÑвлений в psql (ÐоÑи ХинкеÑ)
Ð psql поÑвилиÑÑ Ð¼ÐµÑакомандÑ
\if,\elif,\elseи\endif. ÐÑо полезно в пеÑвÑÑ Ð¾ÑеÑÐµÐ´Ñ Ð´Ð»Ñ ÑкÑипÑов.Ðобавление в psql меÑакомандÑ
\gxÐ´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿ÑоÑа (запÑÑка командÑ\g) в ÑаÑÑиÑенном Ñежиме (\x) (ÐÑиÑÑÐ¾Ñ ÐеÑг)РаÑÑиÑение пеÑеменнÑÑ psql внÑÑÑи ÑÑÑок, заклÑÑÑннÑÑ Ð² обÑаÑнÑе апоÑÑÑоÑÑ (Том Ðейн)
ÐÑо оÑобенно полезно в новÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ñ ÑÑловного веÑÐ²Ð»ÐµÐ½Ð¸Ñ psql.
ÐедопÑÑение ÑÑÑановки некоÑÑекÑнÑÑ Ð·Ð½Ð°Ñений Ð´Ð»Ñ ÑпеÑиалÑнÑÑ Ð¿ÐµÑеменнÑÑ psql (ÐаниÑÐ»Ñ ÐеÑиÑе, Том Ðейн)
Ранее, еÑли какой-либо ÑпеÑиалÑной пеÑеменной psql пÑиÑваивалоÑÑ Ð½ÐµÐºÐ¾ÑÑекÑное знаÑение, оно пÑоÑÑо игноÑиÑовалоÑÑ Ð¸ пÑименÑлоÑÑ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ по ÑмолÑаниÑ. ТепеÑÑ
\setÑо ÑпеÑиалÑной пеÑеменной вÑдаÑÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð¿Ñи недопÑÑÑимом новом знаÑении. Рвиде оÑобого иÑклÑÑениÑ\setÑ Ð¿ÑÑÑÑм или без нового знаÑÐµÐ½Ð¸Ñ Ð¿Ð¾-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð´ÐµÐ¹ÑÑвÑÐµÑ ÐºÐ°Ðº пÑиÑваивание пеÑеменной знаÑениÑon; но ÑепеÑÑ Ð² пеÑеменной дейÑÑвиÑелÑно оказÑваеÑÑÑ ÑÑо знаÑение, а не пÑÑÑÐ°Ñ ÑÑÑока. Ðоманда\unsetÑо ÑпеÑиалÑной пеÑеменной ÑепеÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑно ÑбÑаÑÑÐ²Ð°ÐµÑ Ð¿ÐµÑеменнÑÑ Ñак, ÑÑо она полÑÑÐ°ÐµÑ Ð·Ð½Ð°Ñение по ÑмолÑаниÑ, Ñо еÑÑÑ Ñо знаÑение, коÑоÑÐ°Ñ Ð¾Ð½Ð° имела пÑи запÑÑке. РиÑоге ÑпÑавлÑÑÑÐ°Ñ Ð¿ÐµÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ ÑепеÑÑ Ð²Ñегда Ð¸Ð¼ÐµÐµÑ Ð¾ÑобÑажаемое знаÑение, оÑÑажаÑÑее, ÑÑо ÑакÑиÑеÑки Ð´ÐµÐ»Ð°ÐµÑ psql.Ðобавление пеÑеменнÑÑ , показÑваÑÑÐ¸Ñ Ð²ÐµÑÑÐ¸Ñ ÑеÑвеÑа и psql (ФабÑен ÐоÑлÑо)
Ðобавление в командÑ
\d(показаÑÑ Ð¾ÑноÑение) и\dD(показаÑÑ Ð´Ð¾Ð¼ÐµÐ½) вÑвода пÑавила ÑоÑÑиÑовки, допÑÑÑимоÑÑи NULL и ÑвойÑÑв по ÑмолÑÐ°Ð½Ð¸Ñ Ð² оÑделÑнÑÑ ÑÑолбÑÐ°Ñ (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Ранее вÑÑ ÑÑа инÑоÑмаÑÐ¸Ñ Ð²ÑводилаÑÑ Ð² одном ÑÑолбÑе «ÐодиÑикаÑоÑÑ».
УниÑикаÑÐ¸Ñ Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´
\dв ÑлÑÑаÑÑ , когда запÑоÑеннÑй обÑÐµÐºÑ Ð½Ðµ найден (ÐаниÑÐ»Ñ ÐÑÑÑаÑÑÑон)ТепеÑÑ Ð²Ñе они вÑводÑÑ ÑообÑÐµÐ½Ð¸Ñ Ð¾Ð± ÑÑом в stderr, а не в stdout, и ÑекÑÑ ÑообÑÐµÐ½Ð¸Ñ ÑÑал более единообÑазнÑм.
УÑовеÑÑенÑÑвование Ð´Ð¾Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑабÑлÑÑией в psql (ÐжеÑÑ ÐжейнÑ, ÐÑн ÐаÑвик, ÐндÑÐµÐ°Ñ ÐаÑлÑÑон, СеÑоп СаÑкÑни, Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо, Ðевин ÐÑиÑÑнеÑ. ÐагÑинн ÐлÑмаÑи ÐаннÑакеÑ)
E.50.3.9.2. pgbench
Ðобавление в pgbench паÑамеÑÑа
--log-prefixÐ´Ð»Ñ ÑÑÑановки пÑеÑикÑа Ñайла жÑÑнала (ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада)ÐозможноÑÑÑ ÑазбиваÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ pgbench на неÑколÑко ÑÑÑок (ФабÑен ÐоÑлÑо)
ТепеÑÑ Ð¼ÐµÑÐ°ÐºÐ¾Ð¼Ð°Ð½Ð´Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑодолжиÑÑ Ð½Ð° ÑледÑÑÑей ÑÑÑоке, Ð²Ð²ÐµÐ´Ñ Ð¾Ð±ÑаÑнÑÑ ÐºÐ¾ÑÑÑ ÑеÑÑÑ Ð¿ÐµÑед пеÑеводом ÑÑÑоки.
УÑÑÑанение огÑаниÑÐµÐ½Ð¸Ñ Ð½Ð° положение паÑамеÑÑа
-Mпо оÑноÑÐµÐ½Ð¸Ñ Ðº дÑÑгим паÑамеÑÑам командной ÑÑÑоки (Том Ðейн)
E.50.3.10. СеÑвеÑнÑе пÑиложениÑ
Ðобавление в pg_receivewal паÑамеÑÑа
-Z/--compressÐ´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑжаÑÐ¸Ñ (ÐикаÑÐ»Ñ ÐакÑе)Ðобавление в pg_recvlogical паÑамеÑÑа
--endposÐ´Ð»Ñ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ ÐºÐ¾Ð½ÐµÑной позиÑии (ÐÑейг РингеÑ)ÐÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½ÑÐµÑ ÑÑÑеÑÑвовавÑий Ñанее паÑамеÑÑ
--startpos.ÐеÑеименование паÑамеÑÑов initdb
--nocleanи--nosyncв--no-cleanи--no-sync(Ðик ФиÑинг, ÐиÑÐµÑ ÐйзенÑÑаÑÑ)СÑаÑое напиÑание по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¿Ð¾Ð´Ð´ÐµÑживаеÑÑÑ.
E.50.3.10.1. pg_dump, pg_dumpall, pg_restore
Ð pg_restore Ñеализована возможноÑÑÑ Ð¸ÑклÑÑаÑÑ ÑÑ ÐµÐ¼Ñ (ÐÐ¸Ñ Ð°ÑÐ»Ñ Ðанк)
ÐÐ»Ñ ÑÑого добавлен новÑй клÑÑ
-N/--exclude-schema.Ð pg_dump добавлен паÑамеÑÑ
--no-blobs(Ðийом ÐелаÑж)ÐÑÐ¾Ñ ÐºÐ»ÑÑ Ð¾ÑклÑÑÐ°ÐµÑ Ð²ÑгÑÑÐ·ÐºÑ Ð±Ð¾Ð»ÑÑÐ¸Ñ Ð¾Ð±ÑекÑов.
Ð pg_dumpall добавлен клÑÑ
--no-role-passwordsÐ´Ð»Ñ Ð¾Ñказа Ð¾Ñ ÑÑÐµÐ½Ð¸Ñ Ð¿Ð°Ñолей Ñолей (Ð Ð¾Ð±Ð¸Ð½Ñ Ð¢Ð°Ñакан, Саймон РиггÑ)ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ pg_dumpall не ÑолÑко ÑÑпеÑполÑзоваÑелÑм; без ÑÑого клÑÑа pg_dumpall пÑÑаеÑÑÑ Ð¿ÑоÑиÑаÑÑ Ð¿Ð°Ñоли, а обÑÑнÑм полÑзоваÑелÑм ÑÑо не ÑазÑеÑаеÑÑÑ.
ÐоддеÑжка иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÐ¸Ð½Ñ ÑоннÑÑ Ñнимков пÑи вÑгÑÑзке даннÑÑ Ñ Ð²ÐµÐ´Ð¾Ð¼Ð¾Ð³Ð¾ ÑеÑвеÑа (ÐеÑÑ Ðелинек)
ÐÑполнение
fsync()(ÑÐ¸Ð½Ñ ÑонизаÑии Ñ Ð¤Ð¡) Ð´Ð»Ñ Ñайлов, запиÑÑваемÑÑ ÑÑилиÑами pg_dump и pg_dumpall (ÐикаÑÐ»Ñ ÐакÑе)ÐÑо позволÑÐµÑ Ð±Ð¾Ð»ÐµÐµ ÑвеÑенно гаÑанÑиÑоваÑÑ, ÑÑо вÑгÑÑженнÑе ÑÐ°Ð¹Ð»Ñ Ð±ÐµÐ·Ð¾Ð¿Ð°Ñно ÑÐ¾Ñ ÑÐ°Ð½ÐµÐ½Ñ Ð½Ð° диÑке, до завеÑÑÐµÐ½Ð¸Ñ ÑабоÑÑ Ð¿ÑогÑаммÑ. ÐÑо поведение можно оÑклÑÑиÑÑ Ð½Ð¾Ð²Ñм клÑÑом
--no-sync.
E.50.3.10.2. pg_basebackup
Ð pg_basebackup Ñеализована возможноÑÑÑ Ð¿ÐµÑедаваÑÑ Ð¶ÑÑнал пÑедзапиÑи в Ñежиме tar (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
СодеÑжимое WAL бÑÐ´ÐµÑ Ñ ÑаниÑÑÑÑ Ð² оÑделÑном Ð¾Ñ Ð¾Ñновной копии Ñайле tar.
ÐÑполÑзование в pg_basebackup вÑеменнÑÑ ÑлоÑов ÑепликаÑии (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ)
ÐÑеменнÑе ÑлоÑÑ ÑепликаÑии бÑдÑÑ Ð·Ð°Ð´ÐµÐ¹ÑÑвоваÑÑÑÑ Ð¿Ð¾ ÑмолÑаниÑ, когда pg_basebackup иÑполÑзÑÐµÑ Ð¿ÐµÑедаÑÑ WAL Ñ Ð¿Ð°ÑамеÑÑами по ÑмолÑаниÑ.
Ðолее аккÑÑаÑное вÑполнение ÑÐ¸Ð½Ñ ÑонизаÑии Ñ Ð¤Ð¡ везде, где ÑÑо ÑÑебÑеÑÑÑ Ð² pg_basebackup и pg_receivewal (ÐикаÑÐ»Ñ ÐакÑе)
Ðобавление в pg_basebackup клÑÑа
--no-syncÐ´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ ÑÐ¸Ð½Ñ ÑонизаÑии Ñ Ð¤Ð¡ (ÐикаÑÐ»Ñ ÐакÑе)УлÑÑÑение обÑабоÑки в pg_basebackup пÑопÑÑкаемÑÑ ÐºÐ°Ñалогов (ÐÑвид СÑил)
E.50.3.10.3. pg_ctl
Ðобавление паÑамеÑÑа Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑии повÑÑÐµÐ½Ð¸Ñ Ñоли в pg_ctl (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ðобавление длиннÑÑ ÐºÐ»ÑÑей Ð´Ð»Ñ ÑабоÑÑ pg_ctl Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸ÐµÐ¼ (
--wait) и без Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ (--no-wait) (Ðик ФиÑинг)Ðобавление длинного клÑÑа Ð´Ð»Ñ Ð¿Ð°ÑамеÑÑов, коÑоÑÑе pg_ctl пеÑедаÑÑ ÑеÑвеÑÑ (
--options) (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)Рожидании гоÑовноÑÑи ÑеÑвеÑа команда
pg_ctl start --waitдолжна наблÑдаÑÑ Ð·Ð°postmaster.pid, а не пÑÑаÑÑÑÑ ÑÑÑановиÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение (Том Ðейн)ÐÑоÑеÑÑ postmaster ÑепеÑÑ Ð¼Ð¾Ð¶ÐµÑ ÑигнализиÑоваÑÑ Ð¾ Ñвоей гоÑовноÑÑи пÑинимаÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð² Ñайле
postmaster.pid, и pg_ctl ÑепеÑÑ Ð¿ÑовеÑÑÐµÑ ÑÑÐ¾Ñ Ñайл, ÑÑÐ¾Ð±Ñ Ð¾Ð¿ÑеделиÑÑ, ÑÑо ÑеÑÐ²ÐµÑ Ð·Ð°Ð¿ÑÑен. ÐÑÐ¾Ñ Ð¼ÐµÑод ÑÑÑекÑивнее и надÑжнее ÑÑаÑого, а кÑоме Ñого он избавлÑÐµÑ Ð¾Ñ ÑообÑений о неÑдавÑÐ¸Ñ ÑÑ Ð¿Ð¾Ð¿ÑÑÐºÐ°Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ Ð¿Ñи запÑÑке.УменÑÑение вÑемени ÑеакÑии pg_ctl в ожидании запÑÑка/оÑÑановки пÑоÑеÑÑа postmaster (Том Ðейн)
ТепеÑÑ pg_ctl пÑовеÑÑÐµÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑоÑÑоÑÐ½Ð¸Ñ postmaster не один (как ÑанÑÑе), а деÑÑÑÑ Ñаз в ÑекÑндÑ.
ÐозвÑÐ°Ñ Ð½ÐµÐ½Ñлевого кода ÑоÑÑоÑÐ½Ð¸Ñ Ð¿Ñи вÑÑ Ð¾Ð´Ðµ pg_ctl, еÑли Ð¾Ð¶Ð¸Ð´Ð°ÐµÐ¼Ð°Ñ Ð¾Ð¿ÐµÑаÑÐ¸Ñ Ð½Ðµ завеÑÑилаÑÑ Ð·Ð° оÑведÑнное вÑÐµÐ¼Ñ (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
ТепеÑÑ Ð¾Ð¿ÐµÑаÑии
startиpromoteвозвÑаÑаÑÑ Ð² ÑÐ°ÐºÐ¸Ñ ÑлÑÑаÑÑ ÐºÐ¾Ð´ ÑоÑÑоÑÐ½Ð¸Ñ 1, а не 0. ÐпеÑаÑиÑstopделала ÑÑо вÑегда.
E.50.3.11. ÐÑÑ Ð¾Ð´Ð½Ñй код
ÐеÑÐµÑ Ð¾Ð´ на нÑмеÑаÑÐ¸Ñ Ð²ÐµÑÑий Ñ Ð´Ð²ÑÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñами (ÐиÑÐµÑ ÐйзенÑÑаÑÑ, Том Ðейн)
ÐомеÑа вÑпÑÑков ÑепеÑÑ ÑоÑÑоÑÑ Ð¸Ð· двÑÑ ÑаÑÑей (напÑимеÑ,
10.1), а не из ÑÑÑÑ (напÑимеÑ,9.6.3). ÐÑновнÑе веÑÑии ÑепеÑÑ Ð±ÑдÑÑ ÑвелиÑиваÑÑ ÑолÑко пеÑвое ÑиÑло, а коÑÑекÑиÑÑÑÑие вÑпÑÑки â ÑолÑко вÑоÑое. Рназвании веÑвей вÑпÑÑков бÑÐ´ÐµÑ Ð²ÐºÐ»ÑÑаÑÑÑÑ ÑолÑко одно ÑиÑло (напÑимеÑ,10вмеÑÑо9.6). ÐÑо изменение пÑоизведено Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑзоваÑелÑм бÑло понÑÑнее, ÑÑо еÑÑÑ Ð¾ÑновнаÑ, а ÑÑо â дополниÑелÑÐ½Ð°Ñ Ð²ÐµÑÑÐ¸Ñ PostgreSQL.УлÑÑÑение Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ pgindent (ÐÑÑÑ Ð¡ÑеÑанÑк, Том Ðейн)
ÐÑ Ð¿ÐµÑеÑли на новÑÑ Ð²ÐµÑÑÐ¸Ñ pg_bsd_indent, вклÑÑаÑÑÑÑ Ð¿Ð¾Ñледние ÑÑовеÑÑенÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¸Ð· пÑоекÑа FreeBSD. Ð ÑезÑлÑÑаÑе ÑÑÑÑанено множеÑÑво Ð¼ÐµÐ»ÐºÐ¸Ñ Ð¾Ñибок, коÑоÑÑе пÑиводили к ÑÑÑаннÑм ÑеÑениÑм оÑноÑиÑелÑно ÑоÑмаÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð° C. Ðдно из ÑамÑÑ Ð·Ð°Ð¼ÐµÑнÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ð¹ â ÑÑÑоки в ÑÐºÐ¾Ð±ÐºÐ°Ñ (напÑимеÑ, вÑзов ÑÑнкÑии, запиÑаннÑй в неÑколÑÐºÐ¸Ñ ÑÑÑÐ¾ÐºÐ°Ñ ) ÑепеÑÑ ÐµÐ´Ð¸Ð½Ð¾Ð¾Ð±Ñазно вÑÑавниваÑÑÑÑ Ð¿Ð¾ оÑкÑÑваÑÑей Ñкобке, даже еÑли в ÑезÑлÑÑаÑе код бÑÐ´ÐµÑ Ð²ÑÑ Ð¾Ð´Ð¸ÑÑ Ð·Ð° пÑавÑÑ Ð³ÑаниÑÑ.
ÐозможноÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñеки ICU Ð´Ð»Ñ Ð¿Ð¾Ð´Ð´ÐµÑжки пÑавил ÑоÑÑиÑовки (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
ÐиблиоÑека ICU ÑеализÑÐµÑ Ð²ÐµÑÑиониÑование, ÑÑо позволÑÐµÑ Ð²ÑÑвлÑÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð¿Ñавил ÑоÑÑиÑовки Ð¾Ñ Ð²ÐµÑÑии к веÑÑии. Ðна подклÑÑаеÑÑÑ Ð¿Ð°ÑамеÑÑом configure
--with-icu. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´Ð»Ñ ÑоÑÑиÑовки по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð¸ÑполÑзÑеÑÑÑ Ð²ÑÑÑÐ¾ÐµÐ½Ð½Ð°Ñ Ð±Ð¸Ð±Ð»Ð¸Ð¾Ñека опеÑаÑионной ÑиÑÑемÑ.ÐвÑомаÑиÑеÑкое добавление Ð´Ð»Ñ Ð²ÑÐµÑ ÑÑнкÑий
PG_FUNCTION_INFO_V1помеÑкиDLLEXPORTв Windows (ÐаÑÑÐµÐ½Ñ ÐлÑбе)ÐÑли ÑÑоÑонний код иÑполÑзÑÐµÑ Ð¾Ð±ÑÑÐ²Ð»ÐµÐ½Ð¸Ñ ÑÑнкÑий Ñ Ñ Ð°ÑакÑеÑиÑÑикой
extern, они Ñакже Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸Ð¼ÐµÑÑ Ð¿Ð¾Ð¼ÐµÑкиDLLEXPORTв ÑÑÐ¸Ñ Ð¾Ð±ÑÑвлениÑÑ .ÐиквидаÑÐ¸Ñ ÑÑавÑÐ¸Ñ Ð½ÐµÐ½ÑжнÑми SPI-ÑÑнкÑий
SPI_push(),SPI_pop(),SPI_push_conditional(),SPI_pop_conditional()иSPI_restore_connection()(Том Ðейн)ТепеÑÑ Ð¸Ñ ÑÑнкÑионалÑноÑÑÑ ÑеализÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки. СейÑÐ°Ñ Ð¾ÑÑалиÑÑ Ð¿ÑÑÑÑе макÑоÑÑ Ñ Ñакими именами (ÑÑÐ¾Ð±Ñ Ð½Ðµ ÑÑебовалоÑÑ Ð½ÐµÐ¼ÐµÐ´Ð»ÐµÐ½Ð½Ð¾ обновлÑÑÑ Ð²Ð½ÐµÑние модÑли), но в конÑе конÑов Ð¸Ñ Ð²ÑÐ·Ð¾Ð²Ñ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ ÑдаленÑ.
ÐобоÑнÑм ÑÑÑекÑом ÑÑого Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑÑало Ñо, ÑÑо
SPI_palloc()и ÑодÑÑвеннÑе ÑÑнкÑии ÑепеÑÑ ÑÑебÑÑÑ Ð°ÐºÑивного SPI-подклÑÑениÑ; Ð¸Ñ Ð´ÐµÐ¹ÑÑвие не ÑводиÑÑÑ Ðº пÑоÑÑомÑpalloc(), еÑли его неÑ. ÐÑедÑдÑÑее Ñакое поведение оказалоÑÑ Ð½Ðµ оÑÐµÐ½Ñ Ð¿Ð¾Ð»ÐµÐ·Ð½Ñм и бÑло ÑÑеваÑо неожиданнÑми ÑÑеÑками памÑÑи.ÐозможноÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкого вÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑазделÑемой памÑÑи (Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо, РобеÑÑ Ð¥Ð°Ð°Ñ)
Ðобавление Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð° вÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи, подобного slab, Ð´Ð»Ñ ÑÑÑекÑивного вÑÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¿Ð°Ð¼ÑÑи ÑикÑиÑованного ÑазмеÑа (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)
ÐÑполÑзование ÑемаÑоÑов POSIX вмеÑÑо SysV в Linux и FreeBSD (Том Ðейн)
ÐÑо ÑÐ½Ð¸Ð¼Ð°ÐµÑ Ð½ÐµÐºÐ¾ÑоÑÑе пÑиÑÑÑие плаÑÑоÑме лимиÑÑ Ð½Ð° иÑполÑзование ÑемаÑоÑов SysV.
УлÑÑÑение поддеÑжки 64-биÑнÑÑ Ð°ÑомаÑнÑÑ Ð¾Ð¿ÐµÑаÑий (ÐндÑÐµÑ Ð¤Ñойнд)
ÐÑполÑзование 64-биÑнÑÑ Ð°ÑомаÑнÑÑ Ð¾Ð¿ÐµÑаÑий на плаÑÑоÑме ARM64 (Роман ШапоÑник)
ÐеÑÐµÑ Ð¾Ð´ к иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑÑнкÑии
clock_gettime(), еÑли она доÑÑÑпна, Ð´Ð»Ñ Ð·Ð°Ð¼ÐµÑов длиÑелÑноÑÑи (Том Ðейн)ÐÑли
clock_gettime()недоÑÑÑпна, по-пÑÐµÐ¶Ð½ÐµÐ¼Ñ Ð±ÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑgettimeofday().Ðобавление более надÑжнÑÑ Ð³ÐµÐ½ÐµÑаÑоÑов ÑлÑÑайнÑÑ ÑиÑел Ð´Ð»Ñ ÐºÑипÑогÑаÑиÑеÑкого иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ (ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ, ÐикаÑÐ»Ñ ÐакÑе, Хейкки ÐиннакангаÑ)
ÐÑли надÑжнÑй генеÑаÑÐ¾Ñ ÑлÑÑайнÑÑ ÑиÑел не обнаÑÑживаеÑÑÑ, пÑоÑедÑÑа configure пÑеÑвÑÑÑÑ, еÑли ÑолÑко дополниÑелÑно не пеÑедаÑÑ ÐºÐ»ÑÑ
--disable-strong-random. Ðднако Ñ ÑÑим клÑÑом ÑÑнкÑии pgcrypto, коÑоÑÑм ÑÑебÑеÑÑÑ Ð½Ð°Ð´ÑжнÑй генеÑаÑÐ¾Ñ ÑлÑÑайнÑÑ ÑиÑел, бÑдÑÑ Ð¾ÑклÑÑенÑ.Ð ÑÑнкÑии
WaitLatchOrSocket()налажено ожидание подклÑÑÐµÐ½Ð¸Ñ ÑокеÑа в Windows (ÐндÑÐµÑ Ð¤Ñойнд)ФÑнкÑии
tupconvert.cболее не пÑеобÑазÑÑÑ ÐºÐ¾ÑÑежи ÑолÑко Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð²ÐºÐ»ÑÑиÑÑ Ð² Ð½Ð¸Ñ Ð´ÑÑгой OID ÑоÑÑавного Ñипа (ÐÑÑÑÐ¾Ñ ÐапаÑ, Том Ðейн)РболÑÑинÑÑве ÑоÑек вÑзова ÑÑÐ¾Ñ OID ÑоÑÑавного Ñипа не нÑжен; но еÑли ÑезÑлÑÑиÑÑÑÑий коÑÑеж бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ ÐºÐ°Ðº ÑоÑÑавное знаÑение Datum, ÑÑебÑÑÑÑÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе дейÑÑвиÑ, ÑÑÐ¾Ð±Ñ Ð² нÑм оказалÑÑ ÐºÐ¾ÑÑекÑнÑй OID.
ÐиквидаÑÐ¸Ñ Ð¿Ð¾ÑÑов SCO и Unixware (Том Ðейн)
ÐеÑеÑабоÑка пÑоÑеÑÑа ÑбоÑки докÑменÑаÑии (ÐлекÑÐ°Ð½Ð´Ñ ÐÐ°Ñ Ð¸Ð½)
ÐÑполÑзование XSLT Ð´Ð»Ñ ÑбоÑки докÑменÑаÑии PostgreSQL (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
Ранее иÑполÑзовалиÑÑ Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Jade, DSSSL и JadeTex.
СбоÑка HTML-докÑменÑаÑии по ÑмолÑÐ°Ð½Ð¸Ñ Ñо ÑÑилÑми XSLT (ÐиÑÐµÑ ÐйзенÑÑаÑÑ)
E.50.3.12. ÐополниÑелÑнÑе модÑли
РеализаÑÐ¸Ñ Ð² file_fdw возможноÑÑи ÑиÑаÑÑ Ð²Ñвод пÑогÑамм, Ñак же как и ÑодеÑжимое Ñайлов (ÐоÑи ХинкеÑ, Ðдам Ðомаа)
Ð postgres_fdw Ñеализована пеÑедаÑа агÑегаÑнÑÑ ÑÑнкÑий на ÑдалÑннÑй ÑеÑвеÑ, когда ÑÑо возможно (Ðживан Чок, ÐÑÑÑÐ¾Ñ ÐапаÑ)
ÐÑо ÑокÑаÑÐ°ÐµÑ Ð¾Ð±ÑÑм даннÑÑ , коÑоÑÑй должен пеÑедаваÑÑÑÑ Ñо ÑÑоÑоннего ÑеÑвеÑа и избавлÑÐµÑ Ð·Ð°Ð¿ÑаÑиваÑÑий ÑеÑÐ²ÐµÑ Ð¾Ñ Ð²ÑÑиÑÐ»ÐµÐ½Ð¸Ñ Ð°Ð³ÑегаÑной ÑÑнкÑии.
postgres_fdw Ð¼Ð¾Ð¶ÐµÑ Ð¿ÐµÑедаваÑÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¾ÑноÑений на ÑÑоÑонний ÑеÑÐ²ÐµÑ Ð² болÑÑем ÑиÑле ÑлÑÑаев (ÐÑвид РоÑли, ÐÑÑÑÐ¾Ñ ÐапаÑ, ÐÑÑÑо ФÑдзиÑа)
ÐÑпÑавление поддеÑжки ÑÑолбÑов
OIDв ÑаблиÑÐ°Ñ postgres_fdw (ÐÑÑÑо ФÑдзиÑа)Ранее в ÑÑолбÑаÑ
OIDвÑегда возвÑаÑалиÑÑ Ð½Ñли.РеализаÑÐ¸Ñ Ð² btree_gist и btree_gin возможноÑÑи индекÑиÑоваÑÑ ÑипÑ-пеÑеÑиÑÐ»ÐµÐ½Ð¸Ñ (ÐндÑÑ ÐÑнÑÑан)
ÐÑо позволÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿ÐµÑеÑиÑÐ»ÐµÐ½Ð¸Ñ Ð² огÑаниÑениÑÑ -иÑклÑÑениÑÑ .
Ðобавление в btree_gist поддеÑжки индекÑаÑии Ð´Ð»Ñ Ñипа даннÑÑ
UUID(Ðол ЮнгвиÑÑ)Ðобавлено ÑаÑÑиÑение amcheck, коÑоÑое Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовеÑÑÑÑ ÐºÐ¾ÑÑекÑноÑÑÑ Ð¸Ð½Ð´ÐµÐºÑов-B-деÑевÑев (ÐиÑÐµÑ Ðейган)
ÐÑобÑажение в pg_stat_statements игноÑиÑÑемÑÑ ÐºÐ¾Ð½ÑÑÐ°Ð½Ñ ÐºÐ°Ðº
$N, а не как?(ÐÑÐºÐ°Ñ Ð¤Ð¸ÑÑл)УлÑÑÑение в модÑле cube обÑабоÑки кÑбов Ñ Ð½Ñлевой ÑазмеÑноÑÑÑÑ (Том Ðейн)
ÐÑи ÑÑом Ñакже ÑлÑÑÑена ÑабоÑа Ñо знаÑениÑми
infiniteиNaN.СокÑаÑение ÑиÑла блокиÑовок пÑи обÑаÑении к пÑедÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ pg_buffercache (Ðван ÐаÑÑÑÑов)
Ðак ÑледÑÑвие, его можно более беÑпÑепÑÑÑÑвенно иÑполÑзоваÑÑ Ð² пÑоизводÑÑвеннÑÑ ÑÑÐµÐ´Ð°Ñ .
Ðобавление в pgstattuple ÑÑнкÑии
pgstathashindex()Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа ÑÑаÑиÑÑики Ñ ÐµÑ-индекÑов (ÐÑÑÑÐ¾Ñ Ð¨Ð°Ñма)ÐозможноÑÑÑ Ð¸ÑполÑзоваÑÑ
GRANTÐ´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпом к ÑÑнкÑиÑм pgstattuple (СÑивен ФÑоÑÑ)ÐÑо позволÑÐµÑ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑоÑам ÑазÑеÑаÑÑ Ð²ÑзÑваÑÑ ÑÑи ÑÑнкÑии не ÑолÑко ÑÑпеÑполÑзоваÑелÑм.
СокÑаÑение ÑиÑла блокиÑовок в pgstattuple пÑи пÑоÑмоÑÑе Ñ ÐµÑ-индекÑов (ÐÐ¼Ð¸Ñ Ðапила)
Ðобавление в pageinspect ÑÑнкÑии
page_checksum()Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÑÑолÑной ÑÑÐ¼Ð¼Ñ ÑÑÑаниÑÑ (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)Ðобавление в pageinspect ÑÑнкÑии
bt_page_items(), коÑоÑÐ°Ñ Ð²ÑÐ²Ð¾Ð´Ð¸Ñ ÑлеменÑÑ ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¿ÐµÑеданного обÑаза ÑÑÑаниÑÑ (Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа)Ðобавление поддеÑжки Ñ ÐµÑ-индекÑов в pageinspect (ÐжеÑÐ¿ÐµÑ ÐедеÑÑен, ÐÑÑÑÐ¾Ñ Ð¨Ð°Ñма)
E.50.4. ÐлагодаÑÑÑвеннÑй ÑпиÑок
ÐеÑеÑиÑленнÑе ниже (в алÑавиÑном поÑÑдке) лиÑа Ñделали вклад в ÑÑÐ¾Ñ Ð²ÑпÑÑк, ÑазÑабаÑÑваÑ, ÑовеÑÑенÑÑвÑÑ Ð¸ ÑеÑензиÑÑÑ ÐºÐ¾Ð´, пÑÐ¸Ð½Ð¸Ð¼Ð°Ñ Ð¿Ñавки, пÑÐ¾Ð²Ð¾Ð´Ñ ÑеÑÑиÑование или ÑообÑÐ°Ñ Ð¾ пÑÐ¾Ð±Ð»ÐµÐ¼Ð°Ñ .
| Ðдам ÐÑайÑвелл (Adam Brightwell) |
| Ðдам ÐÑÑÑÑелÑбек (Adam Brusselback) |
| Ðдам Ðомаа (Adam Gomaa) |
| Ðдам Ð¡Ð°Ñ (Adam Sah) |
| ÐдÑиан ÐÐ»Ð°Ð²ÐµÑ (Adrian Klaver) |
| Ðидан Ðан Ðик (Aidan Van Dyk) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐлекÑеев (Aleksander Alekseev) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐоÑоÑков (Alexander Korotkov) |
| ÐлекÑÐ°Ð½Ð´Ñ ÐÐ°Ñ Ð¸Ð½ (Alexander Lakhin) |
| ÐлекÑÐ°Ð½Ð´Ñ Ð¡Ð¾Ñна (Alexander Sosna) |
| ÐлекÑей ÐаÑÑанов (Alexey Bashtanov) |
| ÐлекÑей ÐÑиÑенко (Alexey Grishchenko) |
| ÐлекÑей ÐÑайко (Alexey Isayko) |
| ÐлÑваÑо ÐÑÐ½Ð°Ð½Ð´ÐµÑ Ð¢Ð¾ÑÑоза (Ãlvaro Hernández Tortosa) |
| ÐлÑваÑо ÐÑÑеÑа (Ãlvaro Herrera) |
| ÐÐ¼Ð¸Ñ Ðапила (Amit Kapila) |
| ÐÐ¼Ð¸Ñ ÐангоÑе (Amit Langote) |
| ÐÐ¼Ð¸Ñ Ð¥Ð°Ð½Ð´ÐµÐºÐ°Ñ (Amit Khandekar) |
| ÐмÑл СÑл (Amul Sul) |
| ÐнаÑÑаÑÐ¸Ñ ÐÑбенникова (Anastasia Lubennikova) |
| ÐндÑÐµÐ°Ñ ÐÐ¶Ð¾Ð·ÐµÑ ÐÑог (Andreas Joseph Krogh) |
| ÐндÑÐµÐ°Ñ ÐелÑÑенÑÐµÐ¹Ñ (Andreas Seltenreich) |
| ÐндÑÐµÐ°Ñ ÐаÑлÑÑон (Andreas Karlsson) |
| ÐндÑÐµÐ°Ñ Ð¨ÐµÑбаÑм (Andreas Scherbaum) |
| ÐндÑей ÐоÑодин (Andrey Borodin) |
| ÐндÑей Ðизенко (Andrey Lizenko) |
| ÐндÑÐµÑ Ð¤Ñойнд (Andres Freund) |
| ÐнÑонин ХоÑÑка (Antonin Houska) |
| ÐнÑÑ ÐаÑма (Ants Aasma) |
| ÐÑÑений Ð¨ÐµÑ (Arseny Sher) |
| ÐÑÑÑÑ ÐакиÑов (Artur Zakirov) |
| ÐÑÑен ÐÐ¸Ð½Ñ Ð°ÑÑ (Arjen Nienhuis) |
| ÐÑÑÑÑи ТоÑикоÑи (Atsushi Torikoshi) |
| ÐÑвин ÐгÑавал (Ashwin Agrawal) |
| ÐÑÑÑÐ¾Ñ ÐÐ°Ð¿Ð°Ñ (Ashutosh Bapat) |
| ÐÑÑÑÐ¾Ñ Ð¨Ð°Ñма (Ashutosh Sharma) |
| ÐÑми ÐÑии (Ayumi Ishii) |
| Ðейзил ÐÑÑк (Basil Bourque) |
| Ðен де ÐÑÐ°Ð°Ñ (Ben de Graaff) |
| ÐÐµÐ½ÐµÐ´Ð¸ÐºÑ ÐÑÑндман (Benedikt Grundmann) |
| ÐеÑнд Хелмле (Bernd Helmle) |
| Ðина ÐмеÑÑон (Beena Emerson) |
| ÐÑандÑÑ ÐÐ¸Ñ (Brandur Leach) |
| ÐÑин Хаган (Breen Hagan) |
| ÐÑÑно ÐолÑÑ III (Bruno Wolff III) |
| ÐÑÑд Ðейонг (Brad DeJong) |
| ÐÑÑÑ ÐомджÑн (Bruce Momjian) |
| ÐайÑнави ÐÑабакаÑан (Vaishnavi Prabakaran) |
| ÐенкаÑа Ðалажи ÐагоÑи (Venkata Balaji Nagothi) |
| Ðик ФиÑинг (Vik Fearing) |
| Ðики ÐеÑгаÑа (Vicky Vergara) |
| ÐикÑÐ¾Ñ ÐÐ°Ð³Ð½ÐµÑ (Victor Wagner) |
| ÐинаÑк Ðокале (Vinayak Pokale) |
| ÐиÑен Ðеги (Viren Negi) |
| ÐиÑалий ÐÑÑовой (Vitaly Burovoy) |
| ÐÐ»Ð°Ð´Ð¸Ð¼Ð¸Ñ ÐÑнÑиков (Vladimir Kunshchikov) |
| ÐÐ»Ð°Ð´Ð¸Ð¼Ð¸Ñ Ð ÑÑинов (Vladimir Rusinov) |
| ÐабÑиÑÐ»Ñ ÐаÑÑолини (Gabriele Bartolini) |
| ÐабÑиÑÐ»Ñ Ð Ð¾Ñ (Gabrielle Roth) |
| Ðао ЦзÑнÑи (Gao Zengqi) |
| ÐенÑи ÐолеÑÑ (Henry Boehlert) |
| ÐеÑдан СанÑÐ¾Ñ (Gerdan Santos) |
| Ðийом ÐелаÑж (Guillaume Lelarge) |
| ÐÑег ÐÑÐºÐ¸Ð½Ñ (Greg Atkins) |
| ÐÑег ÐÑÑек (Greg Burek) |
| ÐÑигоÑий Смолкин (Grigory Smolkin) |
| ÐÑÑÑ ÐµÐ¼ ÐаÑÑон (Graham Dutton) |
| Ðавид ФеÑÑÐµÑ (David Fetter) |
| ÐагÑинн ÐлÑмаÑи ÐаннÑÐ°ÐºÐµÑ (Dagfinn Ilmari MannsÃ¥ker) |
| ÐайÑÑÐºÑ Ð¥Ð¸Ð³ÑÑи (Daisuke Higuchi) |
| Ðамиан ÐиÑога (Damian Quiroga) |
| Ðан Ðин Ð¥Ñонг (Dang Minh Huong) |
| ÐÐ°Ð½Ð¸ÐµÐ»Ñ ÐеÑÑеÑман (Daniel Westermann) |
| Ðанило ÐлинÑкий (Danylo Hlynskyi) |
| ÐаниÑле ÐаÑаÑÑо (Daniele Varrazzo) |
| ÐаниÑÐ»Ñ ÐеÑиÑе (Daniel Vérité) |
| ÐаниÑÐ»Ñ ÐÑÑÑаÑÑÑон (Daniel Gustafsson) |
| ÐаÑко ÐÑÐµÐ»ÐµÑ (Darko Prelec) |
| ÐевÑим ÐÑндÑз (Devrim Gündüz) |
| Ðейв ÐÑÐ°Ð¼ÐµÑ (Dave Cramer) |
| Ðейв Ðейдж (Dave Page) |
| ÐÐµÐ½Ð¸Ñ Ð¡Ð¼Ð¸Ñнов (Denis Smirnov) |
| ÐÐµÐ½Ð¸Ñ ÐаÑÐµÐ»Ñ (Denish Patel) |
| ÐÐµÐ½Ð½Ð¸Ñ ÐÑоÑклÑнд (Dennis Björklund) |
| Ðжанни Чиолли (Gianni Ciolli) |
| ÐжаÑед УоÑд (Jarred Ward) |
| ÐжаÑÑин ÐÑÐ¸Ñ (Justin Muise) |
| ÐжаÑÑин ÐÑизби (Justin Pryzby) |
| ÐÐ¶ÐµÐ¹Ð¼Ñ ÐаÑÐºÑ (James Parks) |
| ÐжейÑон Ðи (Jason Li) |
| ÐжейÑон Ð'Ðоннелл (Jason O'Donnell) |
| ÐжейÑон ÐеÑеÑÑен (Jason Petersen) |
| ÐжеÑеми ФинÑÐµÐ»Ñ (Jeremy Finzel) |
| ÐжеÑеми Ð¨Ð½Ð°Ð¹Ð´ÐµÑ (Jeremy Schneider) |
| ÐжеÑÐ¿ÐµÑ ÐедеÑÑен (Jesper Pedersen) |
| ÐжеÑÑ ÐÐµÐ²Ð¸Ñ (Jeff Davis) |
| ÐжеÑÑ ÐÐ¶ÐµÐ¹Ð½Ñ (Jeff Janes) |
| ÐжеÑÑ ÐÑÑо (Jeff Dafoe) |
| Ðживан ÐÐ°Ð´Ñ Ðµ (Jeevan Ladhe) |
| Ðживан Чок (Jeevan Chalke) |
| Ðжим ÐлодженÑки (Jim Mlodgenski) |
| Ðжим ÐÑÑби (Jim Nasby) |
| ÐжинÑÑ Ð§Ð¶Ð°Ð½ (Jinyu Zhang) |
| Ðжо Ðонвей (Joe Conway) |
| Ðжон ХаÑви (John Harvey) |
| ÐжоÑдан Ðигов (Jordan Gigov) |
| ÐÐ¶Ð¾Ñ ÐеÑкÑÑ (Josh Berkus) |
| ÐÐ¶Ð¾Ñ Ð¡Ð¾ÑÐµÑ (Josh Soref) |
| ÐжоÑл ÐжейкобÑон (Joel Jacobson) |
| ÐжÑзеппе ÐÑокколо (Giuseppe Broccolo) |
| ÐжÑлиан ÐаÑквоÑÑ (Julian Markwort) |
| ÐжÑн-Ñок Ян (Junseok Yang) |
| Ðилип ÐÑÐ¼Ð°Ñ (Dilip Kumar) |
| ÐилÑн ÐалаÑзов (Dilyan Palauzov) |
| Ðин РаÑид (Dean Rasheed) |
| ÐмиÑÑий Ðолгов (Dmitry Dolgov) |
| ÐмиÑÑий Ðванов (Dimitry Ivanov) |
| ÐмиÑÑий Ðавлов (Dima Pavlov) |
| ÐмиÑÑий СаÑаÑанников (Dmitriy Sarafannikov) |
| ÐмиÑÑий Федин (Dmitry Fedin) |
| Ðон ÐоÑÑиÑон (Don Morrison) |
| ÐÑвид ÐжонÑÑон (David Johnston) |
| ÐÑвид ÐÑиÑÑенÑен (David Christensen) |
| ÐÑвид РоÑли (David Rowley) |
| ÐÑвид Ð ÑÐ¹Ð´ÐµÑ (David Rader) |
| ÐÑвид СÑил (David Steele) |
| ÐÑн ÐÑд (Dan Wood) |
| Ðвгений Ðазаков (Eugene Kazakov) |
| Ðвгений ÐонÑков (Eugen Konkov) |
| ÐÐ³Ð¾Ñ Ð Ð¾Ð³Ð¾Ð² (Egor Rogov) |
| ÐÐ¸Ð»Ñ ÐаÑолд (Gilles Darold) |
| ÐÑлÑен Ð Ñо (Julien Rouhaud) |
| Ð ÐÑÐ½Ñ Ðон (Yi Wen Wong) |
| Ðван ÐаÑÑÑÑов (Ivan Kartyshov) |
| ÐгоÑÑ ÐоÑÐ¾Ñ (Igor Korot) |
| ÐлÑдÑÑ ÐÑÑбангалиев (Ildus Kurbangaliev) |
| ÐÑн ÐаÑвик (Ian Barwick) |
| ÐелÑе Феннема (Jelte Fennema) |
| ÐеÑÑн ван Ð´ÐµÑ Ð¥Ð°Ð¼ (Jeroen van der Ham) |
| Ðон ÐелÑÑон (Jon Nelson) |
| ÐайÐай ÐÐ¾Ñ Ñй (KaiGai Kohei) |
| Ðайл ÐонÑой (Kyle Conroy) |
| ÐаÑен ХаддлÑÑон (Karen Huddleston) |
| ÐаÑл ÐÐµÑ ÐµÐ½Ð±Ð°ÑÑÑ (Karl Lehenbauer) |
| ÐаÑл Ð. ÐÐ¸Ð½Ñ (Karl O. Pinc) |
| ÐаÑÐ¿ÐµÑ ÐÑк (Kacper Zuk) |
| ÐаÑалин Якоб (Catalin Iacob) |
| Ðевин ÐÑиÑÑÐ½ÐµÑ (Kevin Grittner) |
| Ðим РоÑе ÐаÑлÑен (Kim Rose Carlsen) |
| ÐÐ¸Ñ Ð¤Ð¸Ñке (Keith Fiske) |
| ÐлаÑдио ФÑейÑе (Claudio Freire) |
| ÐлинÑон ÐÐ´Ð°Ð¼Ñ (Clinton Adams) |
| ÐонÑÑ Ð§Ð¶Ð°Ð½ (Const Zhang) |
| ÐонÑÑанÑин ÐвÑеев (Konstantin Evteev) |
| ÐонÑÑанÑин Ðнижник (Konstantin Knizhnik) |
| ÐонÑÑанÑин Ðан (Constantin Pan) |
| ÐоÑи Ð¥Ð¸Ð½ÐºÐµÑ (Corey Huinker) |
| ÐÑейг Ð Ð¸Ð½Ð³ÐµÑ (Craig Ringer) |
| ÐÑÐ¸Ñ Ðенди (Chris Bandy) |
| ÐÑÐ¸Ñ Ð Ð¸ÑаÑÐ´Ñ (Chris Richards) |
| ÐÑÐ¸Ñ Ð ÑпÑÐµÑ Ñ (Chris Ruprecht) |
| ÐÑиÑÑиан УлÑÑÐ¸Ñ (Christian Ullrich) |
| ÐÑиÑÑÐ¾Ñ ÐеÑг (Christoph Berg) |
| ÐÑнÑал ÐÑ Ð¾Ñ (Kuntal Ghosh) |
| ÐÑÑÑ ÐаÑÑалÑепе (Kurt Kartaltepe) |
| ÐÑÑÐ»Ñ Ð§Ð¶Ð¾ (QL Zhuo) |
| ÐÑÑаÑо ХоÑигÑÑи (Kyotaro Horiguchi) |
| ÐаÑÑÐµÐ½Ñ ÐлÑбе (Laurenz Albe) |
| ÐеонаÑдо Чекки (Leonardo Cecchi) |
| ÐÑÐºÐ°Ñ Ð¤Ð¸ÑÑл (Lukas Fittl) |
| ÐÑдовик ÐожÑа-Ðепин (Ludovic Vaugeois-Pepin) |
| ÐагнÑÑ Ð¥Ð°Ð³Ð°Ð½Ð´ÐµÑ (Magnus Hagander) |
| Ðайк ÐалÑмиоÑÑо (Mike Palmiotto) |
| Ðайкл ÐÑй (Michael Day) |
| ÐакÑим ÐилÑÑин (Maksim Milyutin) |
| ÐакÑим Соболев (Maksym Sobolyev) |
| ÐаÑек ЧвоÑен (Marek Cvoren) |
| ÐаÑк ÐÐ¸Ð»Ð³ÐµÑ (Mark Dilger) |
| ÐаÑк ÐиÑквÑд (Mark Kirkwood) |
| ÐаÑк ÐеÑÐµÑ (Mark Pether) |
| ÐаÑк РаÑÐ±Ð°Ñ (Marc Rassbach) |
| ÐаÑк-ÐÐ»Ð°Ñ Ð¯Ñке (Marc-Olaf Jaschke) |
| ÐаÑко Ð¢Ð¸Ð¸ÐºÐºÐ°Ñ (Marko Tiikkaja) |
| ÐаÑÐºÐ¾Ñ ÐаÑÑедо (Marcos Castedo) |
| ÐаÑкÑÑ Ðинанд (Markus Winand) |
| ÐаÑллиÑÑ Ð Ð¸Ð±ÐµÐ¹Ñо (Marllius Ribeiro) |
| ÐаÑÑи РаÑдÑепп (Marti Raudsepp) |
| ÐаÑÑин ÐаÑÐºÐµÑ (MartÃn Marqués) |
| ÐаÑÐ°Ñ Ð¸ÐºÐ¾ Савада (Masahiko Sawada) |
| ÐаÑеÑÑ ÐливейÑа (Matheus Oliveira) |
| ÐеÑлин ÐонкÑÑÑ (Merlin Moncure) |
| ÐикаÑÐ»Ñ ÐакÑе (Michael Paquier) |
| ÐÐ¸Ð»Ð¾Ñ Ð£Ñбанек (Milos Urbanek) |
| ÐиÑÑ Ñн Сай (Mithun Cy) |
| ÐÐ¸Ñ Ð°ÑÐ»Ñ Ðанк (Michael Banck) |
| ÐÐ¸Ñ Ð°ÑÐ»Ñ ÐеÑÐºÐµÑ (Michael Meskes) |
| ÐÐ¸Ñ Ð°ÑÐ»Ñ ÐвеÑÐ¼Ð°Ð¹ÐµÑ (Michael Overmeyer) |
| ÐойÑе ÐжейкобÑон (Moshe Jacobson) |
| ÐÑÑÑÑза ÐабÑавала (Murtuza Zabuawala) |
| ÐÑÑÑÑ Ð¤ÐµÐ½ÑÑк (Mathieu Fenniak) |
| Ðаоки Ðкано (Naoki Okano) |
| ÐаÑан ÐоÑÑаÑÑ (Nathan Bossart) |
| ÐаÑан ÐÐ°Ð³Ð½ÐµÑ (Nathan Wagner) |
| ÐÐµÑ Ð° ХаÑÑи (Neha Khatri) |
| ÐÐµÑ Ð° ШаÑма (Neha Sharma) |
| ÐикиÑа ÐлÑÑ Ð¾Ð² (Nikita Glukhov) |
| Ðиколай ÐикиÑин (Nikolay Nikitin) |
| Ðиколай Шаплов (Nikolay Shaplov) |
| ÐÐ¸ÐºÐ¾Ð»Ð°Ñ ÐаÑелли (Nicolas Baccelli) |
| ÐÐ¸ÐºÐ¾Ð»Ð°Ñ Ðини (Nicolas Guini) |
| ÐÐ¸ÐºÐ¾Ð»Ð°Ñ Ð¢Ð¾Ð²ÐµÐ½ (Nicolas Thauvin) |
| ÐиколаÑÑ Ð¢Ð¸Ð»Ñ (Nikolaus Thiel) |
| ÐÐ¸ÐºÑ Ð¸Ð» СонÑакке (Nikhil Sontakke) |
| Ðил ÐндеÑÑон (Neil Anderson) |
| Ðой ÐÐ¸Ñ (Noah Misch) |
| ÐоÑиÑÑи Синода (Noriyoshi Shinoda) |
| ÐÐ»Ð°Ñ Ðавенда (Olaf Gawenda) |
| Ðлег ÐаÑÑÑнов (Oleg Bartunov) |
| ÐÑкаÑи СааÑенмаа (Oskari Saarenmaa) |
| ÐÑÐ°Ñ Ð¨Ð°Ð²Ð°Ð´Ð·Ðµ (Otar Shavadze) |
| Ðаван ÐеолаÑи (Pavan Deolasee) |
| Ðавел ÐолÑÐ±Ñ (Pavel Golub) |
| Ðавел РайÑкÑп (Pavel Raiskup) |
| Ðавел СÑÐµÑ Ñле (Pavel Stehule) |
| Ðавел Ханак (Pavel Hanák) |
| ÐаÑÐµÑ ÐÐ¾Ñ (Paresh More) |
| ÐеÑÑ Ðелинек (Petr JelÃnek) |
| ÐиÑÐµÑ Ðейган (Peter Geoghegan) |
| ÐиÑÐµÑ ÐйзенÑÑаÑÑ (Peter Eisentraut) |
| Ðол РамÑей (Paul Ramsey) |
| Ðол ЮнгвиÑÑ (Paul Jungwirth) |
| ÐÑÐ°Ð±Ñ Ð°Ñ Ð¡Ð°Ñ Ñ (Prabhat Sahu) |
| ÐÑеÑ-ÐмманÑÑÐ»Ñ ÐндÑе (Pierre-Emmanuel André) |
| ÐÑн СÑÐ½Ñ (Peng Sun) |
| ÐÑÑÑ Ð¡ÑеÑанÑк (Piotr Stefaniak) |
| Ð Ð°Ð³Ð½Ð°Ñ ÐÑÑ ÑеÑлони (Ragnar Ouchterlony) |
| Радек СлÑпик (Radek Slupik) |
| РаджкÑÐ¼Ð°Ñ Ð Ð°Ð³Ñ ÑванÑи (Rajkumar Raghuwanshi) |
| Райан ÐеÑÑи (Ryan Murphy) |
| РаÑа де ла ТоÑÑе (Rafa de la Torre) |
| РаÑÐ¸Ñ Ð¡Ð°Ð±Ð¸Ñ (Rafia Sabih) |
| Ð Ð°Ñ Ð¸Ð»Ð° СÑед (Rahila Syed) |
| Регина Ðбе (Regina Obe) |
| РиÑаÑд ÐиÑÑÐ¾Ð»Ñ (Richard Pistole) |
| РобеÑÑ Ð¥Ð°Ð°Ñ (Robert Haas) |
| Ð Ð¾Ð±Ð¸Ð½Ñ Ð¢Ð°Ñакан (Robins Tharakan) |
| Род Ð¢ÐµÐ¹Ð»Ð¾Ñ (Rod Taylor) |
| Роман ШапоÑник (Roman Shaposhnik) |
| Ð ÑÑаб ÐаÑиа (Rushabh Lathia) |
| Саймон Ð Ð¸Ð³Ð³Ñ (Simon Riggs) |
| Сандип Ð¢Ð°ÐºÐºÐ°Ñ (Sandeep Thakkar) |
| Свейн СвейнÑÑон (Sveinn Sveinsson) |
| Свен Ð . ÐÑнÑе (Sven R. Kunze) |
| СебаÑÑÑÑн ÐÑке (Sebastian Luque) |
| СеÑгей ÐÑÑладÑн (Sergey Burladyan) |
| СеÑгей ÐопоÑов (Sergey Koposov) |
| СеÑоп СаÑкÑни (Sehrope Sarkuni) |
| Симоне ÐоÑÑи (Simone Gotti) |
| СинÑÐ¸Ñ Ð¨Ð°Ð½ (Cynthia Shang) |
| СинÑиÑи ÐаÑÑда (Shinichi Matsuda) |
| СкоÑÑ Ðилликен (Scott Milliken) |
| СпенÑÐµÑ Ð¢Ð¾Ð¼Ð°Ñон (Spencer Thomason) |
| СÑÐ°Ñ ÐелÑÐ²Ð¸Ñ (Stas Kelvich) |
| СÑепан ÐеÑÑеÑников (Stepan Pesternikov) |
| СÑив Ð Ñндалл (Steve Randall) |
| СÑив Ð¡Ð¸Ð½Ð³ÐµÑ (Steve Singer) |
| СÑивен ÐинÑилд (Steven Winfield) |
| СÑивен ФÑоÑÑ (Stephen Frost) |
| СÑивен ФÑÐºÐ»ÐµÑ (Steven Fackler) |
| СÑÑадж ХаÑаге (Suraj Kharage) |
| Тайки Ðондо (Taiki Kondo) |
| ТакаÑки ЦÑнакава (Takayuki Tsunakawa) |
| ТакÑÑи ÐдÑÑÐ¸Ñ Ð° (Takeshi Ideriha) |
| Ð¢Ð°Ñ Ð¸Ñ Ð¤Ð°Ñ ÑÑÑдинов (Tahir Fakhroutdinov) |
| ТаÑÑо ÐÑии (Tatsuo Ishii) |
| ТаÑÑÑо Ямада (Tatsuro Yamada) |
| Тим ÐÑдÑÐ¹Ñ (Tim Goodaire) |
| Ð¢Ð¾Ð±Ð¸Ð°Ñ ÐÑÑман (Tobias Bussmann) |
| Том ÐÑаÑн (Thom Brown) |
| Том ÐÑнÑÑан (Tom Dunstan) |
| Том Ðейн (Tom Lane) |
| Тома ван ТилбÑÑг (Tom van Tilburg) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐеллеÑÐµÑ (Thomas Kellerer) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐанÑо (Thomas Munro) |
| Ð¢Ð¾Ð¼Ð°Ñ ÐондÑа (Tomas Vondra) |
| ТомонаÑи ÐаÑÑмаÑа (Tomonari Katsumata) |
| ТÑÑÐ°Ñ ÐÑ Ñджа (Tushar Ahuja) |
| ФабÑиÑио де Ð Ð¾Ð¹ÐµÑ Ðелло (FabrÃzio de Royes Mello) |
| ФабÑен ÐоÑлÑо (Fabien Coelho) |
| Фейке СÑинбеÑген (Feike Steenbergen) |
| Ð¤ÐµÐ»Ð¸ÐºÑ ÐеÑзаге (Felix Gerzaguet) |
| Филип ÐиÑÑак (Filip Jirsák) |
| Филипп ÐодÑÑн (Philippe Beaudoin) |
| ФÑдзии ÐаÑао (Fujii Masao) |
| ФÑÐ´Ð¾Ñ Ð¡Ð¸Ð³Ð°ÐµÐ² (Teodor Sigaev) |
| Хайме Ðазанова (Jaime Casanova) |
| Ð¥Ð°Ð½Ñ ÐÑÑман (Hans Buschmann) |
| ХаÑÐ¸Ð±Ð°Ð±Ñ Ðомми (Haribabu Kommi) |
| Хейкки ÐÐ¸Ð½Ð½Ð°ÐºÐ°Ð½Ð³Ð°Ñ (Heikki Linnakangas) |
| Ð¥ÑÐ°Ð½Ñ ÐÑÐ°Ð½Ñ (Huan Ruan) |
| Чепмен ФлÑк (Chapman Flack) |
| Ð§Ð¶Ð¾Ñ Ðигоал (Zhou Digoal) |
| ЧжÑÐ½Ñ Ðин Ян (Zhen Ming Yang) |
| ЧÑанÑÑин Ðан (Chuanting Wang) |
| Ð§Ñ Ð²Ðµ ÐÑ-Ðон (Choi Doo-Won) |
| ЧÑÐ½Ñ Ð¥ÑаÑзÑÐ½Ñ (Chen Huajun) |
| Шо ÐаÑо (Sho Kato) |
| Шон ФаÑÑел (Sean Farrell) |
| ШÑй РоджанÑки (Shay Rojansky) |
| Ðйдзи СÑки (Eiji Seki) |
| ÐÐ¹Ð»ÐµÑ Ð¢Ð°Ð²ÐµÐ¹Ñа (Euler Taveira) |
| Ðмил Ðггланд (Emil Iggland) |
| ÐмÑе ХаÑегели (Emre Hasegeli) |
| Ðнди ÐбелиÑÑо (Andy Abelisto) |
| ÐндÑÑ ÐилÑÐ°Ð¹Ñ (Andrew Wheelwright) |
| ÐндÑÑ ÐиÑÑ (Andrew Gierth) |
| ÐндÑÑ ÐÑнÑÑан (Andrew Dunstan) |
| ÐнÑике ÐенеÑÐµÑ (Enrique Meneses) |
| ÐÑвин ÐÑандÑÑеÑÑÐµÑ (Erwin Brandstetter) |
| ÐÑик ÐоÑдÑÑÑом (Erik Nordström) |
| ÐÑик РижкеÑÑ (Erik Rijkers) |
| ÐÑÑÑо ФÑдзиÑа (Etsuro Fujita) |
| Юго ÐагаÑа (Yugo Nagata) |
| Якоб ÐÐ³Ð³ÐµÑ (Jakob Egger) |