рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, PostgreSQL 14 DBMS рдЪреА рдирд╡реАрди рд╕реНрдерд┐рд░ рд╢рд╛рдЦрд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реА рдЖрд╣реЗ. рдирд╡реАрди рд╢рд╛рдЦреЗрдЪреЗ рдЕрдкрдбреЗрдЯреНрд╕ рдиреЛрд╡реНрд╣реЗрдВрдмрд░ 2026 рдкрд░реНрдпрдВрдд рдкрд╛рдЪ рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдХрд╛рд▓рд╛рд╡рдзреАрдд рдкреНрд░рд╕рд┐рджреНрдз рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓.

рдореБрдЦреНрдп рдирд╡рдХрд▓реНрдкрдирд╛:

  • рдЕреЕрд░реЗ-рд╕рд╛рд░рдЦреА рдЕрднрд┐рд╡реНрдпрдХреНрддреА рд╡рд╛рдкрд░реВрди JSON рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ: SELECT ('{ "postgres": { "release": 14 }}'::jsonb)['postgres']['release']; рд╕рд┐рд▓реЗрдХреНрдЯ * FROM рдЪрд╛рдЪрдгреА рдЬреЗрдереЗ рддрдкрд╢реАрд▓['attributes']['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 рдСрдкрд░реЗрд╢рди (рдХрдЪрд░рд╛ рд╕рдВрдХрд▓рди рдЖрдгрд┐ рдбрд┐рд╕реНрдХ рд╕реНрдЯреЛрд░реЗрдЬрдЪреЗ рдкреЕрдХреЗрдЬрд┐рдВрдЧ) рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╛рдареА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдПрдХ рдЖрдгреАрдмрд╛рдгреА рдХреНрд▓реАрдирдЕрдк рдореЛрдб рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЖрдпрдбреА рд░реЕрдкрд░рд╛рдЙрдВрдб рдкрд░рд┐рд╕реНрдерд┐рддреА рдирд┐рд░реНрдорд╛рдг рдХреЗрд▓реНрдпрд╛рд╕ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреНрд▓реАрдирдЕрдк рдСрдкрд░реЗрд╢рдиреНрд╕ рд╡рдЧрд│рддреЛ. рдмреА-рдЯреНрд░реА рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХрд╛рдВрд╡рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛рдирд╛ рдУрд╡реНрд╣рд░рд╣реЗрдб рдХрдореА рдХреЗрд▓реЗ. рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирдмрджреНрджрд▓ рдЖрдХрдбреЗрд╡рд╛рд░реА рдЧреЛрд│рд╛ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ "рд╡рд┐рд╢реНрд▓реЗрд╖рдг" рдСрдкрд░реЗрд╢рдирдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╡реЗрдЧрд╡рд╛рди рдЭрд╛рд▓реА рдЖрд╣реЗ.
  • TOAST рд╕рд┐рд╕реНрдЯреАрдордордзреНрдпреЗ рд╡рд╛рдкрд░рд▓реЗрд▓реА рдХреЙрдореНрдкреНрд░реЗрд╢рди рдкрджреНрдзрдд рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЖрд╣реЗ, рдЬреА рдордЬрдХреВрд░рд╛рдЪреЗ рдмреНрд▓реЙрдХреНрд╕ рдХрд┐рдВрд╡рд╛ рднреМрдорд┐рддрд┐рдХ рдорд╛рд╣рд┐рддреА рдпрд╛рдВрд╕рд╛рд░рдЦрд╛ рдореЛрдард╛ рдбреЗрдЯрд╛ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. pglz рдХреЙрдореНрдкреНрд░реЗрд╢рди рдкрджреНрдзрддреА рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, TOAST рдЖрддрд╛ LZ4 рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рд╡рд╛рдкрд░реВ рд╢рдХрддреЗ.
  • рдбреАрдмреАрдПрдордПрд╕рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирд╡рд░ рджреЗрдЦрд░реЗрдЦ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдирд╛рдВрдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. 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 рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЬреЛрдбрд▓реЗ. рд░рд┐рдХрд░реНрд╕рд┐рд╡ search_tree(id, link, data) AS ( рд╕рд┐рд▓реЗрдХреНрдЯ 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 SET ordercol рджреНрд╡рд╛рд░реЗ рдкреНрд░рдердо рдЦреЛрд▓реА рд╢реЛрдзрд╛ * search_tree рд╡рд░реВрди 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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛