рд╡рд┐рдХрд╛рд╕рдХреЛ рдПрдХ рд╡рд░реНрд╖ рдкрдЫрд┐, PostgreSQL 14 DBMS рдХреЛ рдирдпрд╛рдБ рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдирдпрд╛рдБ рд╢рд╛рдЦрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХрд╣рд░реВ рдиреЛрднреЗрдореНрдмрд░ 2026 рд╕рдореНрдо рдкрд╛рдБрдЪ рд╡рд░реНрд╖рдорд╛ рдЬрд╛рд░реА рдЧрд░рд┐рдиреЗрдЫред

рдореБрдЦреНрдп рдЖрд╡рд┐рд╖реНрдХрд╛рд░рд╣рд░реВ:

  • рдПрд░реЗ-рдЬрд╕реНрддреИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ JSON рдбреЗрдЯрд╛ рдкрд╣реБрдБрдЪ рдЧрд░реНрди рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ: SELECT ('{ "postgres": { "release": 14 }}'::jsonb) ['postgres']['release']; рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН * рдкрд░реАрдХреНрд╖рдгрдмрд╛рдЯ рдХрд╣рд╛рдБ рд╡рд┐рд╡рд░рдгрд╣рд░реВ['рд╡рд┐рд╢реЗрд╖рддрд╛рд╣рд░реВ']['size'] = '"рдордзреНрдпрдо"';

    hstore рдкреНрд░рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдХреБрдЮреНрдЬреА/рдорд╛рди рдбреЗрдЯрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд╛рди рд╕рд┐рдиреНрдЯреНрдпрд╛рдХреНрд╕ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдпреЛ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рд╛рд░рдореНрднрдорд╛ рд╡рд┐рд╢реНрд╡рд╡реНрдпрд╛рдкреА рдлреНрд░реЗрдорд╡рд░реНрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ, рдЬреБрди рднрд╡рд┐рд╖реНрдпрдорд╛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░рдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред hstore рдкреНрд░рдХрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдЙрджрд╛рд╣рд░рдг: INSERT INTO mytable VALUES ('a=>b, c=>d'); рдорд╛рдпрдЯреЗрдмрд▓рдмрд╛рдЯ h['a'] рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН; рдЕрдкрдбреЗрдЯ mytable SET h['c'] = 'рдирдпрд╛рдБ';

  • рджрд╛рдпрд░рд╛рд╣рд░реВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рдкрд░рд┐рд╡рд╛рд░рд▓рд╛рдИ рдирдпрд╛рдБ "рдмрд╣реБ рджрд╛рдпрд░рд╛" рдкреНрд░рдХрд╛рд░рд╣рд░реВрд╕рдБрдЧ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдорд╛рдирд╣рд░реВрдХреЛ рдЧреИрд░-рдУрднрд░рд▓реНрдпрд╛рдкрд┐рдЩ рджрд╛рдпрд░рд╛рд╣рд░реВрдХреЛ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреАрд╣рд░реВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдкреНрд░рддреНрдпреЗрдХ рдЕрд╡рд╕реНрдерд┐рдд рджрд╛рдпрд░рд╛ рдкреНрд░рдХрд╛рд░рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдпрд╕рдХреЛ рдЖрдлреНрдиреИ рдмрд╣реБ рджрд╛рдпрд░рд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рдХрд╛рд░ "int4range" "int4multirange" рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рд░ рдкреНрд░рдХрд╛рд░ "daterange" "datemultirange" рд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рдирдпрд╛рдБ рдкреНрд░рдХрд╛рд░рд╣рд░реВрдХреЛ рдкреНрд░рдпреЛрдЧрд▓реЗ рджрд╛рдпрд░рд╛рд╣рд░реВрдХреЛ рдЬрдЯрд┐рд▓ рдЕрдиреБрдХреНрд░рдорд╣рд░реВ рд╣реЗрд░рдлреЗрд░ рдЧрд░реНрдиреЗ рдХреНрд╡реЗрд░реАрд╣рд░реВрдХреЛ рдбрд┐рдЬрд╛рдЗрдирд▓рд╛рдИ рд╕рд░рд▓ рдмрдирд╛рдЙрдБрдЫред рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН '{[3,7), [8,9)}'::int4multirange; рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН nummultirange(numrange(1.0, 14.0), numrange(20.0, 25.0));
  • рдзреЗрд░реИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЬрдбрд╛рдирд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рдЙрдЪреНрдЪ-рд▓реЛрдб рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдХреЛ рдкреНрд░рджрд░реНрд╢рди рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рдмрдирд╛рдЗрдПрдХреЛ рдЫред рдХреЗрд╣реА рдкрд░реАрдХреНрд╖рдгрд╣рд░реВрдорд╛, рдкреНрд░рджрд░реНрд╢рдирдорд╛ рджреБрдИ рдЧреБрдгрд╛ рд╡реГрджреНрдзрд┐ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫред
  • рдмреА-рдЯреНрд░реА рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВрдХреЛ рджрдХреНрд╖рддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдмрд╛рд░рдореНрдмрд╛рд░ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рд╣реБрдБрджрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рд╡реГрджреНрдзрд┐рдХреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдЕрдиреБрд░реЛрдзрд╣рд░реВрдХреЛ рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдкреНрд░рд╕рд╛рд░рдгрдХреЛ рдХреНрд▓рд╛рдЗрдиреНрдЯ-рд╕рд╛рдЗрдб (libpq рд╕реНрддрд░рдорд╛ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ) рдореЛрдбрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкрд┐рдпреЛ, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдкрдард╛рдПрд░ рдареВрд▓реЛ рд╕рдВрдЦреНрдпрд╛рдорд╛ рд╕рд╛рдирд╛ рд▓реЗрдЦрди рдХрд╛рд░реНрдпрд╣рд░реВ (INSERT/UPDATE/DELETE) рдкреНрд░рджрд░реНрд╢рдирд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдбрд╛рдЯрд╛рдмреЗрд╕ рдкрд░рд┐рджреГрд╢реНрдпрд╣рд░реВрд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЧрддрд┐ рджрд┐рди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред рдЕрдШрд┐рд▓реНрд▓реЛрдХреЛ рдирддрд┐рдЬрд╛ рдкрд░реНрдЦрд┐ рдмрд┐рдирд╛ рдЕрд░реНрдХреЛ рдЕрдиреБрд░реЛрдзред рдореЛрдбрд▓реЗ рд▓рд╛рдореЛ рдкреНрдпрд╛рдХреЗрдЯ рдбреЗрд▓рд┐рднрд░реА рдврд┐рд▓рд╛рдЗрдХреЛ рд╕рд╛рде рдЬрдбрд╛рдирд╣рд░реВрдорд╛ рдХрд╛рдордХреЛ рдЧрддрд┐ рдмрдврд╛рдЙрди рдорджреНрджрдд рдЧрд░реНрджрдЫред
  • рдзреЗрд░реИ PostgreSQL рд╕рд░реНрднрд░рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реА рд╡рд┐рддрд░рд┐рдд рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рд╖реНрдХреГрдд рдХреНрд╖рдорддрд╛рд╣рд░реВред рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛, рдЕрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рд░рд╣реЗрдХрд╛ рд╕реНрдЯреНрд░рд┐рдорд┐рдЩ рдореЛрдб рд▓реЗрдирджреЗрдирд╣рд░реВрдорд╛ рдкрдард╛рдЙрди рд╕рдореНрднрд╡ рд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рдареВрд▓рд╛ рд▓реЗрдирджреЗрдирдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд╕рдХреНрдЫред рдердк рд░реВрдкрдорд╛, рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдХреГрддрд┐рдХреЛ рд╕рдордпрдорд╛ рдкреНрд░рд╛рдкреНрдд рдбрд╛рдЯрд╛рдХреЛ рддрд╛рд░реНрдХрд┐рдХ рдбрд┐рдХреЛрдбрд┐рдЩрд▓рд╛рдИ рдЕрдиреБрдХреВрд▓рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдмрд╛рд╣реНрдп рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЬреЛрдбреНрдиреЗ рдореЗрдХрд╛рдирд┐рдЬрдо рд╡рд┐рджреЗрд╢реА рдбрд╛рдЯрд╛ рд░реНрдпрд╛рдкрд░ (postgres_fdw) рд▓реЗ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХреНрд╡реЗрд░реА рдкреНрд░рд╢реЛрдзрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдердкреЗрдХреЛ рдЫ, рдЬреБрди рд╣рд╛рд▓ рдЕрдиреНрдп PostgreSQL рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджрд╛ рдорд╛рддреНрд░ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред postgres_fdw рд▓реЗ рдмреНрдпрд╛рдЪ рдореЛрдбрдорд╛ рдмрд╛рд╣реНрдп рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдердкреНрди рд░ "рд╡рд┐рджреЗрд╢реА рдпреЛрдЬрдирд╛ рдЖрдпрд╛рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН" рдирд┐рд░реНрджреЗрд╢рди рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реЗрд░ рд╡рд┐рднрд╛рдЬрди рдЧрд░рд┐рдПрдХреЛ рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ рдЖрдпрд╛рдд рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рдкрдирд┐ рдердкреНрдЫред
  • VACUUM рдЕрдкрд░реЗрд╢рдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдорд╛ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рдмрдирд╛рдЗрдПрдХреЛ рдЫ (рдлреЛрд╣реЛрд░ рд╕рдВрдХрд▓рди рд░ рдбрд┐рд╕реНрдХ рднрдгреНрдбрд╛рд░рдгрдХреЛ рдкреНрдпрд╛рдХреЗрдЬрд┐рдЩ)ред рдПрдХ рдЖрдкрддрдХрд╛рд▓реАрди рд╕рдлрд╛рдИ рдореЛрдб рдердкрд┐рдПрдХреЛ рдЫ рдЬрд╕рд▓реЗ рд▓реЗрдирджреЗрди ID рд░реНрдпрд╛рдкрд░рд╛рдЙрдиреНрдб рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рднрдПрдорд╛ рдЧреИрд░-рдЖрд╡рд╢реНрдпрдХ рд╕рдлрд╛рдИ рдХрд╛рд░реНрдпрд╣рд░реВ рдЫреЛрдбреНрдЫред B-Tree рдврд╛рдБрдЪрд╛рдорд╛ рдЕрдиреБрдХреНрд░рдордгрд┐рдХрд╛рд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрд╛ рдУрднрд░рд╣реЗрдб рдШрдЯрд╛рдЗрдпреЛред рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рдмрд╛рд░реЗрдорд╛ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреЗ "ANALYZE" рдЕрдкрд░реЗрд╕рдирдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд▓рд╛рдИ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд░реВрдкрдорд╛ рдЧрддрд┐ рджрд┐рдЗрдПрдХреЛ рдЫред
  • TOAST рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдХрдореНрдкреНрд░реЗрд╕рди рд╡рд┐рдзрд┐ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдердкрд┐рдпреЛ, рдЬреБрди рдареВрд▓реЛ рдбреЗрдЯрд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ, рдЬрд╕реНрддреИ рдкрд╛рдардХреЛ рдмреНрд▓рдХ рд╡рд╛ рдЬреНрдпрд╛рдорд┐рддреАрдп рдЬрд╛рдирдХрд╛рд░реАред pglz рдХрдореНрдкреНрд░реЗрд╕рди рд╡рд┐рдзрд┐рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, TOAST рд▓реЗ рдЕрдм LZ4 рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫред
  • DBMS рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдЕрдиреБрдЧрдордирдХрд╛ рд▓рд╛рдЧрд┐ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред COPY рдЖрджреЗрд╢рд╣рд░реВ (pg_stat_progress_copy), рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕реНрд▓рдЯрд╣рд░реВ (pg_stat_replication_slots) рд░ WAL рд▓реЗрдирджреЗрди рд▓рдЧ (pg_stat_wal) рд╕рдБрдЧ рд╕рдореНрдмрдиреНрдзрд┐рдд рдЧрддрд┐рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрди рджреГрд╢реНрдпрд╣рд░реВ рдердкрд┐рдпреЛред compute_query_id рдкреНрд░рдХрд╛рд░реНрдп рдердкрд┐рдПрдХреЛ рдЫ, рдЬрд╕рд▓реЗ рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдкреНрд░рдгрд╛рд▓реАрд╣рд░реВ рд╕рдХреНрд╖рдо рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ pg_stat_activity рд░ EXPLAIN VERBOSE, рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдзрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ рдирд┐рдпреБрдХреНрдд рдЧрд░реЗрд░ рдЕрдиреБрд░реЛрдзрд╣рд░реВ рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдиред
  • рдХреНрд╡реЗрд░реАрд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдкреНрд░рд╢реЛрдзрди рд╕реБрдзрд╛рд░ рдЧрд░реНрди рд░ рдЕрдиреБрдХреНрд░рдорд┐рдХ рд░реЗрдХрд░реНрдб рд╕реНрдХреНрдпрд╛рди рдЕрдкрд░реЗрд╕рдирд╣рд░реВ, PL/pgSQL рдорд╛ рдХреНрд╡реЗрд░реАрд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди "RETURN QUERY" рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд░ "рдорд╛ рдкреНрд░рд╢реНрдирд╣рд░реВрдХреЛ рд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрдирдорд╛ рд╕реБрдзрд╛рд░ рдЧрд░реНрди рдХреНрд╡реЗрд░реА рдпреЛрдЬрдирд╛рдХрд╛рд░рдорд╛ рдЕрдиреБрдХреВрд▓рдирд╣рд░реВ рдердкрд┐рдПрдХреЛ рдЫред рднреМрддрд┐рдХ рджреГрд╢реНрдпрд▓рд╛рдИ рддрд╛рдЬрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН"ред рдЪрдХреНрд░реАрдп рдиреЗрд╕реНрдЯреЗрдб рдорд░реНрдЬ (рдЬреЛрдЗрди) рдХреЛ рдХрд╛рд░реНрдпрд╕рдореНрдкрд╛рджрди рд╕реБрдзрд╛рд░ рдЧрд░реНрди, рдЕрддрд┐рд░рд┐рдХреНрдд рдХреНрдпрд╛рд╕рд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдорд░реНрдерди рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдЙрдиреНрдирдд рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВ рдЕрдм рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рд░ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдХреНрд░рдордмрджреНрдз рдЕрдм рд╕рдЮреНрдЭреНрдпрд╛рд▓ рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЕрдиреБрдХреВрд▓рди рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред
  • рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдХреЛрдбрдХреЛ рдмреНрд▓рдХрд╣рд░реВрдорд╛ рд▓реЗрдирджреЗрдирд╣рд░реВ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рдЕрдм "рдЖрдЙрдЯ" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдлрд┐рд░реНрддрд╛ рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдЧрд░реНрди рд╕рдорд░реНрдерди рдЧрд░реНрджрдЫред
  • рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдиреНрддрд░рд╛рд▓ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЙрдиреНрдб рдЯрд╛рдЗрдорд╕реНрдЯреНрдпрд╛рдореНрдк рдорд╛рдирд╣рд░реВрдорд╛ date_bin рдкреНрд░рдХрд╛рд░реНрдп рдердкрд┐рдпреЛред рдорд┐рддрд┐_рдмрд┐рди рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН('15 рдорд┐рдиреЗрдЯ', TIMESTAMP '2020-02-11 15:44:17', TIMESTAMP '2001-01-01'); 2020-02-11 15:30:00
  • рдкреБрдирд░рд╛рд╡рд░реНрддреА рд╕рд╛рдЭрд╛ рддрд╛рд▓рд┐рдХрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ (CTE) рдорд╛ рдЪрдХреНрд░рд╣рд░реВ рдЕрд░реНрдбрд░ рдЧрд░реНрди рд░ рдкрд╣рд┐рдЪрд╛рди рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрди SQL рдорд╛рдирдХрдорд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд SEARCH рд░ CYCLE рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рд╣рд░реВ рдердкрд┐рдпреЛред RECURSIVE search_tree (id, link, data) AS ( SELECT t.id, t.link, t.data FROM рдЯреНрд░реА t UNION рд╕рдмреИ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН t.id, t.link, t.data FROM рдЯреНрд░реА t, search_tree st WHERE tред id = st.link ) рдЦреЛрдЬ рдЧрд╣рд┐рд░рд╛рдИ рдкрд╣рд┐рд▓реЛ id рджреНрд╡рд╛рд░рд╛ id SET рдЕрд░реНрдбрд░рдХреЛрд▓ рдЪрдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН * search_tree рдмрд╛рдЯ ORDER BY ordercol;
  • psql рдЙрдкрдпреЛрдЧрд┐рддрд╛рдорд╛, рдЯреНрдпрд╛рдмрд╣рд░реВрд╕рдБрдЧ рдЖрджреЗрд╢рд╣рд░реВрдХреЛ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рд╕реБрдзрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫ, рдкреНрд░рдХрд╛рд░реНрдп рддрд░реНрдХрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ "\df" рдЖрджреЗрд╢рдорд╛ рдердкрд┐рдПрдХреЛ рдЫ, рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рддрдереНрдпрд╛рдЩреНрдХрд╣рд░реВрд▓рд╛рдИ "\dX" рдЖрджреЗрд╢рдорд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдЧрд░рд┐рдПрдХреЛ рдЫред
  • рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрд▓рд╛рдИ рдкрдвреНрди-рдорд╛рддреНрд░ рд╡рд╛ рд▓реЗрдЦреНрди-рдорд╛рддреНрд░ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ рдкреНрд░рджрд╛рди рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫред рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░рд╣рд░реВ pg_read_all_data рд░ pg_write_all_data рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рднреВрдорд┐рдХрд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рддрд╛рд▓рд┐рдХрд╛рд╣рд░реВ, рджреГрд╢реНрдпрд╣рд░реВ, рд░ рдпреЛрдЬрдирд╛рд╣рд░реВрдорд╛ рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред рдЧреНрд░рд╛рдиреНрдЯ pg_read_all_data to user1;
  • рдирдпрд╛рдБ рд╕реНрдерд╛рдкрдирд╛рд╣рд░реВ md256 рдХреЛ рд╕рдЯреНрдЯрд╛ SCRAM-SHA-5 рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкрд╛рд╕рд╡рд░реНрдб рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдорд╛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реБрдиреНрдЫрдиреН (postgresql.conf рдЙрддреНрдкрдиреНрди рдЧрд░реНрджрд╛ "password_encryption" рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░ рдЕрдм 'scram-sha-256' рдорд╛ рд╕реЗрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫ)ред

рд╕реНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди