<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
	<id>http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL_19_%282026%29</id>
	<title>PostgreSQL 19 (2026) - Historie editací</title>
	<link rel="self" type="application/atom+xml" href="http://postgres.cz/index.php?action=history&amp;feed=atom&amp;title=PostgreSQL_19_%282026%29"/>
	<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;action=history"/>
	<updated>2026-08-14T04:10:33Z</updated>
	<subtitle>Historie editací této stránky</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1600&amp;oldid=prev</id>
		<title>PavelStehule: /* SQL */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1600&amp;oldid=prev"/>
		<updated>2026-07-18T03:58:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;SQL&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 18. 7. 2026, 03:58&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l219&quot;&gt;Řádek 219:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 219:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==SQL==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==SQL==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;GROUP BY ALL&amp;lt;/code&amp;gt; je syntaxe, kterou postres přejímá z analytických databází (zde to snad byla [https://duckdb.org/2022/05/04/friendlier-sql#group-by-all DuckDB]). Pokud se použije tento zápis, tak se automaticky agreguje podle všech sloupců, které nejsou v agregační funkci:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;s&amp;gt;&lt;/ins&gt;&amp;lt;p&amp;gt;&amp;lt;code&amp;gt;GROUP BY ALL&amp;lt;/code&amp;gt; je syntaxe, kterou postres přejímá z analytických databází (zde to snad byla [https://duckdb.org/2022/05/04/friendlier-sql#group-by-all DuckDB]). Pokud se použije tento zápis, tak se automaticky agreguje podle všech sloupců, které nejsou v agregační funkci:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT sum(pocet_zen + pocet_muzu), okresy.id, okresy.nazev  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;SELECT sum(pocet_zen + pocet_muzu), okresy.id, okresy.nazev  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l225&quot;&gt;Řádek 225:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 225:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  GROUP BY ALL;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  GROUP BY ALL;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tento zápis může ušetřit dost psaní, může to být také &quot;tichý&quot; zabiják výkonu. Čím více atributů je v klauzuli &amp;lt;code&amp;gt;GROUP BY&amp;lt;/code&amp;gt;, tím je agregace pomalejší. Zápis &amp;lt;code&amp;gt;GROUP BY ALL&amp;lt;/code&amp;gt; ještě není ve standardu, ale je standardizační komisí akceptován, a měl by být v některé další verzi ANSI/SQL.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Tento zápis může ušetřit dost psaní, může to být také &quot;tichý&quot; zabiják výkonu. Čím více atributů je v klauzuli &amp;lt;code&amp;gt;GROUP BY&amp;lt;/code&amp;gt;, tím je agregace pomalejší. Zápis &amp;lt;code&amp;gt;GROUP BY ALL&amp;lt;/code&amp;gt; ještě není ve standardu, ale je standardizační komisí akceptován, a měl by být v některé další verzi ANSI/SQL.&amp;lt;/p&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/s&amp;gt; revertovano&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Počínaje Postgresem 19 už nebude možnost používat backlash jako escape symbol v řetězcích. Před 15 roky se přešlo na standardní chování (předtím se řetězce v Postgresu chovali stejně jako v Cčku), nicméně nestandardní chování bylo možné vynutit nastavením &amp;lt;code&amp;gt;standard_conforming_strings&amp;lt;/code&amp;gt; na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Mezi top vývojáři Postgresu je hodně velká averze k tzv kompatibility flagům (zmíněný flag nebyl výjimkou) (pozn. u komerčních databází jsou naopak kompatibility flagu standardem, a nejen u nich - např. MySQL). Nyní je tato možnost zrušena, a Cčkové stringy dostaneme pouze jen zápisem (jako tzv extended strings):&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Počínaje Postgresem 19 už nebude možnost používat backlash jako escape symbol v řetězcích. Před 15 roky se přešlo na standardní chování (předtím se řetězce v Postgresu chovali stejně jako v Cčku), nicméně nestandardní chování bylo možné vynutit nastavením &amp;lt;code&amp;gt;standard_conforming_strings&amp;lt;/code&amp;gt; na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Mezi top vývojáři Postgresu je hodně velká averze k tzv kompatibility flagům (zmíněný flag nebyl výjimkou) (pozn. u komerčních databází jsou naopak kompatibility flagu standardem, a nejen u nich - např. MySQL). Nyní je tato možnost zrušena, a Cčkové stringy dostaneme pouze jen zápisem (jako tzv extended strings):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1595:rev-1600:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1595&amp;oldid=prev</id>
		<title>PavelStehule: /* pg_plan_advice */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1595&amp;oldid=prev"/>
		<updated>2026-06-22T15:38:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;pg_plan_advice&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 22. 6. 2026, 15:38&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l146&quot;&gt;Řádek 146:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 146:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==pg_plan_advice==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==pg_plan_advice==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Až doposud uživatelé Postgresu neměli moc možností, jak ovlivnit generování prováděcích plánů. Hinty ve stylu Oracle byly a jsou z historických důvodů tabu (jsou implementovány extenzí [https://github.com/ossc-db/pg_hint_plan pg_hint_plan]). Uživatel měl pouze možnost penalizace metod executoru - např. &amp;lt;code&amp;gt;enable_nestloop&amp;lt;/code&amp;gt; nebo &amp;lt;code&amp;gt;enable_indexscan&amp;lt;/code&amp;gt; nastavením na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Tato penalizace je ale dost hrubá, a neumožňuje jemné ovlivnění plánovače. Přesto se používala a používá. &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Rober &lt;/del&gt;Haas napsal dvě extenze [https://www.postgresql.org/docs/devel/pgplanadvice.html &amp;lt;code&amp;gt;pg_plan_advice&amp;lt;/code&amp;gt;] a [https://www.postgresql.org/docs/devel/pgstashadvice.html &amp;lt;code&amp;gt;pg_stash_advice&amp;lt;/code&amp;gt;]. Prvně zmíněná extenze umožňuje definovat jakási doporučení, která by měl planner respektovat. Pro každý plán lze zpětně dogenerovat tato doporučení:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Až doposud uživatelé Postgresu neměli moc možností, jak ovlivnit generování prováděcích plánů. Hinty ve stylu Oracle byly a jsou z historických důvodů tabu (jsou implementovány extenzí [https://github.com/ossc-db/pg_hint_plan pg_hint_plan]). Uživatel měl pouze možnost penalizace metod executoru - např. &amp;lt;code&amp;gt;enable_nestloop&amp;lt;/code&amp;gt; nebo &amp;lt;code&amp;gt;enable_indexscan&amp;lt;/code&amp;gt; nastavením na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Tato penalizace je ale dost hrubá, a neumožňuje jemné ovlivnění plánovače. Přesto se používala a používá. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Robert &lt;/ins&gt;Haas napsal dvě extenze [https://www.postgresql.org/docs/devel/pgplanadvice.html &amp;lt;code&amp;gt;pg_plan_advice&amp;lt;/code&amp;gt;] a [https://www.postgresql.org/docs/devel/pgstashadvice.html &amp;lt;code&amp;gt;pg_stash_advice&amp;lt;/code&amp;gt;]. Prvně zmíněná extenze umožňuje definovat jakási doporučení, která by měl planner respektovat. Pro každý plán lze zpětně dogenerovat tato doporučení:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EXPLAIN (PLAN_ADVICE)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EXPLAIN (PLAN_ADVICE)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1594:rev-1595:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1594&amp;oldid=prev</id>
		<title>PavelStehule: /* Administrace */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1594&amp;oldid=prev"/>
		<updated>2026-06-18T17:38:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Administrace&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 18. 6. 2026, 17:38&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Řádek 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nová implementace by měla být řádově rychlejší.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nová implementace by měla být řádově rychlejší.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;s&amp;gt;&amp;lt;p&amp;gt;Konečně se dotáhlo do konce začlenění podpory více formátů v příkazu &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Postgres má dva základní příkazy pro export (backup) - &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Historicky tyto příkazy podporovaly pouze &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; formát. Postupem času &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; získal možnost exportu do &amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;dictionary&amp;lt;/code&amp;gt; formátu plus import příkazem &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umožňoval paralelní import více tabulek. &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; byl díky podpoře pouze SQL formátu dost omezený. To se nyní změnilo, a v &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; jsou podporovány všechny formáty, které podporuje &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt;. Vypadá to trochu jako workaround. V případě, že se použije jiný než &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; (SQL) formát, tak se vyrobí adresář, který do podadresářů uloží výstup z &amp;lt;code&amp;gt;pg_dumpu&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umí s touto adresářovou strukturou pracovat. Tato možnost se dostala už do 18tky, ale byla na poslední chvíli stažena.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/p&amp;gt;&lt;/del&gt;&amp;lt;/s&amp;gt; patch byl revertován.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;s&amp;gt;&amp;lt;p&amp;gt;Konečně se dotáhlo do konce začlenění podpory více formátů v příkazu &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Postgres má dva základní příkazy pro export (backup) - &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Historicky tyto příkazy podporovaly pouze &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; formát. Postupem času &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; získal možnost exportu do &amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;dictionary&amp;lt;/code&amp;gt; formátu plus import příkazem &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umožňoval paralelní import více tabulek. &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; byl díky podpoře pouze SQL formátu dost omezený. To se nyní změnilo, a v &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; jsou podporovány všechny formáty, které podporuje &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt;. Vypadá to trochu jako workaround. V případě, že se použije jiný než &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; (SQL) formát, tak se vyrobí adresář, který do podadresářů uloží výstup z &amp;lt;code&amp;gt;pg_dumpu&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umí s touto adresářovou strukturou pracovat. Tato možnost se dostala už do 18tky, ale byla na poslední chvíli stažena.&amp;lt;/s&amp;gt; patch byl revertován.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/p&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V &amp;lt;code&amp;gt;pg_rewind&amp;lt;/code&amp;gt; zredukovalo kopírování WAL logů z nového primárního serveru na budovanou repliku a to tak, že se budou kopírovat pouze WAL logy vzniklé po rozpadu replikace. V mnoha scénářích se tím výrazně urychlí běh tohoto příkazu.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V &amp;lt;code&amp;gt;pg_rewind&amp;lt;/code&amp;gt; zredukovalo kopírování WAL logů z nového primárního serveru na budovanou repliku a to tak, že se budou kopírovat pouze WAL logy vzniklé po rozpadu replikace. V mnoha scénářích se tím výrazně urychlí běh tohoto příkazu.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1593:rev-1594:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1593&amp;oldid=prev</id>
		<title>PavelStehule: /* Administrace */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1593&amp;oldid=prev"/>
		<updated>2026-06-18T17:37:41Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Administrace&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 18. 6. 2026, 17:37&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l42&quot;&gt;Řádek 42:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 42:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nová implementace by měla být řádově rychlejší.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Nová implementace by měla být řádově rychlejší.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Konečně se dotáhlo do konce začlenění podpory více formátů v příkazu &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Postgres má dva základní příkazy pro export (backup) - &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Historicky tyto příkazy podporovaly pouze &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; formát. Postupem času &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; získal možnost exportu do &amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;dictionary&amp;lt;/code&amp;gt; formátu plus import příkazem &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umožňoval paralelní import více tabulek. &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; byl díky podpoře pouze SQL formátu dost omezený. To se nyní změnilo, a v &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; jsou podporovány všechny formáty, které podporuje &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt;. Vypadá to trochu jako workaround. V případě, že se použije jiný než &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; (SQL) formát, tak se vyrobí adresář, který do podadresářů uloží výstup z &amp;lt;code&amp;gt;pg_dumpu&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umí s touto adresářovou strukturou pracovat. Tato možnost se dostala už do 18tky, ale byla na poslední chvíli stažena.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;s&amp;gt;&lt;/ins&gt;&amp;lt;p&amp;gt;Konečně se dotáhlo do konce začlenění podpory více formátů v příkazu &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Postgres má dva základní příkazy pro export (backup) - &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt;. Historicky tyto příkazy podporovaly pouze &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; formát. Postupem času &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt; získal možnost exportu do &amp;lt;code&amp;gt;custom&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;tar&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;dictionary&amp;lt;/code&amp;gt; formátu plus import příkazem &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umožňoval paralelní import více tabulek. &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; byl díky podpoře pouze SQL formátu dost omezený. To se nyní změnilo, a v &amp;lt;code&amp;gt;pg_dumpall&amp;lt;/code&amp;gt; jsou podporovány všechny formáty, které podporuje &amp;lt;code&amp;gt;pg_dump&amp;lt;/code&amp;gt;. Vypadá to trochu jako workaround. V případě, že se použije jiný než &amp;lt;code&amp;gt;plain text&amp;lt;/code&amp;gt; (SQL) formát, tak se vyrobí adresář, který do podadresářů uloží výstup z &amp;lt;code&amp;gt;pg_dumpu&amp;lt;/code&amp;gt;. &amp;lt;code&amp;gt;pg_restore&amp;lt;/code&amp;gt; umí s touto adresářovou strukturou pracovat. Tato možnost se dostala už do 18tky, ale byla na poslední chvíli stažena.&amp;lt;/p&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/s&amp;gt; patch byl revertován.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V &amp;lt;code&amp;gt;pg_rewind&amp;lt;/code&amp;gt; zredukovalo kopírování WAL logů z nového primárního serveru na budovanou repliku a to tak, že se budou kopírovat pouze WAL logy vzniklé po rozpadu replikace. V mnoha scénářích se tím výrazně urychlí běh tohoto příkazu.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V &amp;lt;code&amp;gt;pg_rewind&amp;lt;/code&amp;gt; zredukovalo kopírování WAL logů z nového primárního serveru na budovanou repliku a to tak, že se budou kopírovat pouze WAL logy vzniklé po rozpadu replikace. V mnoha scénářích se tím výrazně urychlí běh tohoto příkazu.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1589:rev-1593:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1589&amp;oldid=prev</id>
		<title>PavelStehule v 10. 5. 2026, 03:32</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1589&amp;oldid=prev"/>
		<updated>2026-05-10T03:32:56Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 10. 5. 2026, 03:32&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l564&quot;&gt;Řádek 564:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 564:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V pohledu &amp;lt;code&amp;gt;pg_replication_slots&amp;lt;/code&amp;gt; je nový sloupec &amp;lt;code&amp;gt;slotsync_skip_reason&amp;lt;/code&amp;gt; popisující důvod, proč nebylo možné synchronizovat repliku. V tom případě bude obsahovat jednu z následujících hodnot: &amp;lt;code&amp;gt;wal_or_rows_removed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wal_not flushed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no_consistent_snapshot&amp;lt;/code&amp;gt; nebo 	&amp;lt;code&amp;gt;slot_invalidated&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;V pohledu &amp;lt;code&amp;gt;pg_replication_slots&amp;lt;/code&amp;gt; je nový sloupec &amp;lt;code&amp;gt;slotsync_skip_reason&amp;lt;/code&amp;gt; popisující důvod, proč nebylo možné synchronizovat repliku. V tom případě bude obsahovat jednu z následujících hodnot: &amp;lt;code&amp;gt;wal_or_rows_removed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;wal_not flushed&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;no_consistent_snapshot&amp;lt;/code&amp;gt; nebo 	&amp;lt;code&amp;gt;slot_invalidated&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Pokud při registraci odběru nastavíme parametr &amp;lt;code&amp;gt;retain_dead_tuples&amp;lt;/code&amp;gt; na &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; (výchozí nastavení je &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;), budou se detekovat kolize update-delete, kdy nedojde k update z důvodu smazaného řádku. Pozor, tato volba dočasně blokuje vakuování zrušených řádků (zvlášť pokud je replika nedostupná a nedochází k synchronizaci). Lze nastavit timeout &amp;lt;code&amp;gt;max_retention_duration&amp;lt;/code&amp;gt;, samozřejmě &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pak ovšem &lt;/del&gt;může dojít &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ke &lt;/del&gt;kolizi update-delete. Bez detekce této kolize může dojít k tiché nekonzistenci obsahu napříč různými zdroji.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Pokud při registraci odběru nastavíme parametr &amp;lt;code&amp;gt;retain_dead_tuples&amp;lt;/code&amp;gt; na &amp;lt;code&amp;gt;on&amp;lt;/code&amp;gt; (výchozí nastavení je &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;), budou se detekovat kolize update-delete, kdy nedojde k update z důvodu smazaného řádku. Pozor, tato volba dočasně blokuje vakuování zrušených řádků (zvlášť pokud je replika nedostupná a nedochází k synchronizaci). Lze nastavit timeout &amp;lt;code&amp;gt;max_retention_duration&amp;lt;/code&amp;gt;, samozřejmě &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;po timeoutu &lt;/ins&gt;může dojít &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;k neidentifikovan0 &lt;/ins&gt;kolizi update-delete. Bez detekce této kolize může dojít k tiché nekonzistenci obsahu napříč různými zdroji.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ostatní==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ostatní==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l709&quot;&gt;Řádek 709:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 709:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Každoročně dochází k čištění kódu. Občas se zruší podpora některé platformy. Výjimečně se přidá podpora nové platformy nebo jako v případě pg19 se vrátí podpora dříve odstraněné platformy (AIX - operační systém AIX přestal být podporovaný v pg17 díky nezájmu IBM. Pak se ale v IBM chytli za nos, dodali počítač do testovací farmy, a do AIXu přidali aktualizovaný software potřebný k buildu Postgresu). Další čistky v kódu lze provést přechodem na novější verzi programovacího jazyka - přechodem z C99 na C11 (bohužel to může znamenat, že starých platformách se nové verze Postgresu nepřeloží). Interní datový typ &amp;lt;code&amp;gt;Datum&amp;lt;/code&amp;gt; až do předchozí verze byl 4bajtový na 32bitových platformách a 8bajtový na 64bitových platformách. Nově je 8bajtový na všech podporovaných platformách. Určitě nezanedbatelná část kódu se generuje z definičních souborů. Nově se z definic generuje kód definující konfigurační proměnné. Údržba, verzování, zajištění konzistence definičních souborů je násobně jednodušší než údržba adekvátního kódu v Cčku. Dynamická alokace paměti bude jednodušší díky funkcím &amp;lt;code&amp;gt;GetNamedDSA&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;GetNamedDSMSegment&amp;lt;/code&amp;gt;. Dynamicky sdílenou paměť lze sledovat skrze pohled &amp;lt;code&amp;gt;pg_dsm_registry_allocations&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Každoročně dochází k čištění kódu. Občas se zruší podpora některé platformy. Výjimečně se přidá podpora nové platformy nebo jako v případě pg19 se vrátí podpora dříve odstraněné platformy (AIX - operační systém AIX přestal být podporovaný v pg17 díky nezájmu IBM. Pak se ale v IBM chytli za nos, dodali počítač do testovací farmy, a do AIXu přidali aktualizovaný software potřebný k buildu Postgresu). Další čistky v kódu lze provést přechodem na novější verzi programovacího jazyka - přechodem z C99 na C11 (bohužel to může znamenat, že starých platformách se nové verze Postgresu nepřeloží). Interní datový typ &amp;lt;code&amp;gt;Datum&amp;lt;/code&amp;gt; až do předchozí verze byl 4bajtový na 32bitových platformách a 8bajtový na 64bitových platformách. Nově je 8bajtový na všech podporovaných platformách. Určitě nezanedbatelná část kódu se generuje z definičních souborů. Nově se z definic generuje kód definující konfigurační proměnné. Údržba, verzování, zajištění konzistence definičních souborů je násobně jednodušší než údržba adekvátního kódu v Cčku. Dynamická alokace paměti bude jednodušší díky funkcím &amp;lt;code&amp;gt;GetNamedDSA&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;GetNamedDSMSegment&amp;lt;/code&amp;gt;. Dynamicky sdílenou paměť lze sledovat skrze pohled &amp;lt;code&amp;gt;pg_dsm_registry_allocations&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Mám pocit, že vývoj Postgresu ještě víc zrychlil - je vidět mnohem víc patchů od lidí z Asie (dříve to bylo spíš jenom Japonsko), a o to víc se naráží na kapacitu committerů. Je to paradox, který nejde jednoduše řešit. Postgres je populární díky funkcionalitě a stabilitě. Stabilita je díky pečlivé práci commitetterů (důkladně se řeší každý řádek kódu). Díky popularitě je více programátorů, kteří píší více kódu, více patchů, ale committeři nestíhají, a tak patche zůstávají relativně dlouho ve frontě. Což frustruje programátory. Patch napíšete během měsíce, během měsíce se dá udělat finalizace a pár iterací s committerem, ale mezitím několik měsíců (v horším případě let (3 roky i v případě bezproblémového malého patche)), čekáte, až si na vás některý z committerů udělá čas. Celou dobu musíte udržovat patch v aplikovatelném stavu, musíte reagovat na případné diskuze, musíte sledovat vývoj a případně aktualizovat patch. Je to problém o kterém se ví, diskutuje se o něm, ale není úplně jasné, co by mělo být řešení. Minimálně se zlepšila evidence patchů, která pokrývá i automatické testování na několika různých platformách. Tady je velká klika, že Postgres má extenze. Neskutečně velký objem kódu (funkcionality) je dnes možné řešit skrz extenze mimo komunitu - což výrazně snižuje tlak na committery. V extenzích toho jde udělat hodně, bohužel, ne všechno. Na druhou stranu, extenze také nejsou bez rizika. Určitým způsobem zvyšují fragmentaci ekosystému Postgresu, který pak ztrácí přehlednost (plus ne všechny extenze jsou dostupné v cloudu). Zase, díky tomu je jádro Postgresu stále ještě rozumně velké. O Oracle &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;se &lt;/del&gt;kolují zvěsti, že jádro má 14 miliónů řádek, Postgres pod 2 milióny. Náklady na údržbu Postgresu jsou výrazně menší. Kompilace zdrojáků je do 5 minut, regresní testy v největším rozsahu běží 15 minut. S tím ještě lze nějak rozumně pracovat. O Oracle jsem slyšel, že regresní testy běží den.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Mám pocit, že vývoj Postgresu ještě víc zrychlil - je vidět mnohem víc patchů od lidí z Asie (dříve to bylo spíš jenom Japonsko), a o to víc se naráží na kapacitu committerů. Je to paradox, který nejde jednoduše řešit. Postgres je populární díky funkcionalitě a stabilitě. Stabilita je díky pečlivé práci commitetterů (důkladně se řeší každý řádek kódu). Díky popularitě je více programátorů, kteří píší více kódu, více patchů, ale committeři nestíhají, a tak patche zůstávají relativně dlouho ve frontě. Což frustruje programátory. Patch napíšete během měsíce, během měsíce se dá udělat finalizace a pár iterací s committerem, ale mezitím několik měsíců (v horším případě let (3 roky i v případě bezproblémového malého patche)), čekáte, až si na vás některý z committerů udělá čas. Celou dobu musíte udržovat patch v aplikovatelném stavu, musíte reagovat na případné diskuze, musíte sledovat vývoj a případně aktualizovat patch. Je to problém o kterém se ví, diskutuje se o něm, ale není úplně jasné, co by mělo být řešení. Minimálně se zlepšila evidence patchů, která pokrývá i automatické testování na několika různých platformách. Tady je velká klika, že Postgres má extenze. Neskutečně velký objem kódu (funkcionality) je dnes možné řešit skrz extenze mimo komunitu - což výrazně snižuje tlak na committery. V extenzích toho jde udělat hodně, bohužel, ne všechno. Na druhou stranu, extenze také nejsou bez rizika. Určitým způsobem zvyšují fragmentaci ekosystému Postgresu, který pak ztrácí přehlednost (plus ne všechny extenze jsou dostupné v cloudu). Zase, díky tomu je jádro Postgresu stále ještě rozumně velké. O Oracle kolují zvěsti, že jádro má 14 miliónů řádek, Postgres pod 2 milióny. Náklady na údržbu Postgresu jsou výrazně menší. Kompilace zdrojáků je do 5 minut, regresní testy v největším rozsahu běží 15 minut. S tím ještě lze nějak rozumně pracovat. O Oracle jsem slyšel, že regresní testy běží den.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Popularita Postgresu jde aktuálně až do absurdna. Z Linkedinu mám pocit, že začíná být přepostgresováno (samozřejmě z mé perspektivy a v mé bublině). Hromada příspěvků vygenerovaných AI jsou banality na úrovni žáka prvního stupně (Postgres má VACUUM, indexy jsou super, dotazy mohou být pomalé, atd atd). Doporučení typu - proč ne Redis, proč ne Elastic, na všechno použijte Postgres. Viděl jsem hromadu clickbaitových článků typu - multigenerační architektura Postgresu je tragická, ale s naší AI nebo s naším supportem nebudete mít problém, atd atd. Postgresu dnes rozumí každý, kdo dokáže do AI napsat Postgres. Měl jsem tu možnost vidět naprosto neadekvátní doporučení ohledně konfigurace (dnes nevíte jestli důvodem je neznalost autora nebo naopak jeho vychytralost a snaha o co nejvíc komentářů případně o troling). Historicky popularita Postgresu rostla ve stínu MySQL, Monga a dalších databází a roky byl Postgres ušetřený mediálního balastu. To bohužel už není pravda. Pořád platí, že Postgres je dobrá databáze, stabilní, relativně rychlá, která se ale rozhodně nehodí na vše. Má svoje limity, které je dobré znát, a rozhodně nemůže ve všech ohledech (ve větším rozsahu) nahradit Redis, MySQL nebo Mongo případně Kafku. To je nesmysl, a není to ani cílem komunity. Základem jakékoliv práce je znát limity, chování, a správně v souladu s celkem, používat správné nástroje.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Popularita Postgresu jde aktuálně až do absurdna. Z Linkedinu mám pocit, že začíná být přepostgresováno (samozřejmě z mé perspektivy a v mé bublině). Hromada příspěvků vygenerovaných AI jsou banality na úrovni žáka prvního stupně (Postgres má VACUUM, indexy jsou super, dotazy mohou být pomalé, atd atd). Doporučení typu - proč ne Redis, proč ne Elastic, na všechno použijte Postgres. Viděl jsem hromadu clickbaitových článků typu - multigenerační architektura Postgresu je tragická, ale s naší AI nebo s naším supportem nebudete mít problém, atd atd. Postgresu dnes rozumí každý, kdo dokáže do AI napsat Postgres. Měl jsem tu možnost vidět naprosto neadekvátní doporučení ohledně konfigurace (dnes nevíte jestli důvodem je neznalost autora nebo naopak jeho vychytralost a snaha o co nejvíc komentářů případně o troling). Historicky popularita Postgresu rostla ve stínu MySQL, Monga a dalších databází a roky byl Postgres ušetřený mediálního balastu. To bohužel už není pravda. Pořád platí, že Postgres je dobrá databáze, stabilní, relativně rychlá, která se ale rozhodně nehodí na vše. Má svoje limity, které je dobré znát, a rozhodně nemůže ve všech ohledech (ve větším rozsahu) nahradit Redis, MySQL nebo Mongo případně Kafku. To je nesmysl, a není to ani cílem komunity. Základem jakékoliv práce je znát limity, chování, a správně v souladu s celkem, používat správné nástroje.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1588:rev-1589:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1588&amp;oldid=prev</id>
		<title>PavelStehule: /* Administrace */</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1588&amp;oldid=prev"/>
		<updated>2026-05-10T03:19:06Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Administrace&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 10. 5. 2026, 03:19&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l144&quot;&gt;Řádek 144:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 144:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;INSERT 0 1&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;INSERT 0 1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==pg_plan_advice==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==pg_plan_advice==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1587:rev-1588:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1587&amp;oldid=prev</id>
		<title>PavelStehule v 10. 5. 2026, 03:18</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1587&amp;oldid=prev"/>
		<updated>2026-05-10T03:18:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;amp;diff=1587&amp;amp;oldid=1586&quot;&gt;Ukázat změny&lt;/a&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1586&amp;oldid=prev</id>
		<title>PavelStehule v 10. 5. 2026, 03:15</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1586&amp;oldid=prev"/>
		<updated>2026-05-10T03:15:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 10. 5. 2026, 03:15&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Řádek 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;O předchozích verzích jsem napsal, že změny byly primárně interní. Z pohledu uživatele, který chce vidět novou SQL syntax, se toho v posledních verzích moc nestalo. Devatenáctka je jiná. Tam je viditelných změn opravdu hodně. Jako každý rok - nová verze je pelmel nových funkcí a různých vylepšení menších nebo větších.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;O předchozích verzích jsem napsal, že změny byly primárně interní. Z pohledu uživatele, který chce vidět novou SQL syntax, se toho v posledních verzích moc nestalo. Devatenáctka je jiná. Tam je viditelných změn opravdu hodně. Jako každý rok - nová verze je pelmel nových funkcí a různých vylepšení menších nebo větších.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Administrace&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Administrace&lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1585:rev-1586:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1585&amp;oldid=prev</id>
		<title>PavelStehule v 10. 5. 2026, 03:15</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1585&amp;oldid=prev"/>
		<updated>2026-05-10T03:15:18Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 10. 5. 2026, 03:15&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l4&quot;&gt;Řádek 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 4:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Administrace&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Administrace&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;====&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1584:rev-1585:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
	<entry>
		<id>http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1584&amp;oldid=prev</id>
		<title>PavelStehule v 10. 5. 2026, 03:14</title>
		<link rel="alternate" type="text/html" href="http://postgres.cz/index.php?title=PostgreSQL_19_(2026)&amp;diff=1584&amp;oldid=prev"/>
		<updated>2026-05-10T03:14:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;cs&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Verze z 10. 5. 2026, 03:14&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l3&quot;&gt;Řádek 3:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 3:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;O předchozích verzích jsem napsal, že změny byly primárně interní. Z pohledu uživatele, který chce vidět novou SQL syntax, se toho v posledních verzích moc nestalo. Devatenáctka je jiná. Tam je viditelných změn opravdu hodně. Jako každý rok - nová verze je pelmel nových funkcí a různých vylepšení menších nebo větších.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;O předchozích verzích jsem napsal, že změny byly primárně interní. Z pohledu uživatele, který chce vidět novou SQL syntax, se toho v posledních verzích moc nestalo. Devatenáctka je jiná. Tam je viditelných změn opravdu hodně. Jako každý rok - nová verze je pelmel nových funkcí a různých vylepšení menších nebo větších.&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;h3&amp;gt;&lt;/del&gt;Administrace&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/h3&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Administrace&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Bloating tabulek může být problém. Skoro všude jsem se setkal se situací, kdy &amp;quot;mazací&amp;quot; skript přestal fungovat (z různých důvodů), přičemž se tato chyba detekovala příliš pozdě, kdy dotčené tabulky měly místo jednotek GB například desítky GB. To už musí zaúřadovat &amp;lt;code&amp;gt;VACUUM FULL&amp;lt;/code&amp;gt;, což často znamená vynucenou plánovanou odstávku (kvůli držení exkluzivního zámku). Je to letitý problém, který zkušenější uživatelé řešili buďto pečlivějším monitoringem, v některých případech partišningem (partitioning), případně extenzemi &amp;lt;code&amp;gt;pg_repack&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt;. Autor posledně jmenované extenze Tonda (Antonín Houska) spolu s Alvarem (Alvaro Herrera) poslední dva roky pracovali na integraci &amp;lt;code&amp;gt;pg_squeeze&amp;lt;/code&amp;gt; do jádra Postgresu. Paradoxně příkaz, který bude provádět zdrcnutí tabulek, se bude jmenovat &amp;lt;code&amp;gt;REPACK&amp;lt;/code&amp;gt;. Základem je logická replikace - zadaná tabulka se lokálně zreplikuje (vytvoří se její nová kopie, a tím se zbaví vnitřního neobsazeného místa). Co je zásadní, je možnost použít volbu &amp;lt;code&amp;gt;CONCURRENTLY&amp;lt;/code&amp;gt;. S touto volbou příkaz nepoužije exkluzivní zámek. Tudíž je možné jej použít za provozu. Nutnou podmínkou je existence primárního klíče (a unikátního indexu).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l146&quot;&gt;Řádek 146:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádek 147:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;h3&amp;gt;&lt;/del&gt;pg_plan_advice&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/h3&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;pg_plan_advice&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;----&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Až doposud uživatelé Postgresu neměli moc možností, jak ovlivnit generování prováděcích plánů. Hinty ve stylu Oracle byly a jsou z historických důvodů tabu (jsou implementovány extenzí [https://github.com/ossc-db/pg_hint_plan pg_hint_plan]). Uživatel měl pouze možnost penalizace metod executoru - např. &amp;lt;code&amp;gt;enable_nestloop&amp;lt;/code&amp;gt; nebo &amp;lt;code&amp;gt;enable_indexscan&amp;lt;/code&amp;gt; nastavením na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Tato penalizace je ale dost hrubá, a neumožňuje jemné ovlivnění plánovače. Přesto se používala a používá. Rober Haas napsal dvě extenze [https://www.postgresql.org/docs/devel/pgplanadvice.html &amp;lt;code&amp;gt;pg_plan_advice&amp;lt;/code&amp;gt;] a [https://www.postgresql.org/docs/devel/pgstashadvice.html code&amp;gt;pg_stash_advice&amp;lt;/code&amp;gt;]. Prvně zmíněná extenze umožňuje definovat jakási doporučení, která by měl planner respektovat. Pro každý plán lze zpětně dogenerovat tato doporučení:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;p&amp;gt;Až doposud uživatelé Postgresu neměli moc možností, jak ovlivnit generování prováděcích plánů. Hinty ve stylu Oracle byly a jsou z historických důvodů tabu (jsou implementovány extenzí [https://github.com/ossc-db/pg_hint_plan pg_hint_plan]). Uživatel měl pouze možnost penalizace metod executoru - např. &amp;lt;code&amp;gt;enable_nestloop&amp;lt;/code&amp;gt; nebo &amp;lt;code&amp;gt;enable_indexscan&amp;lt;/code&amp;gt; nastavením na &amp;lt;code&amp;gt;off&amp;lt;/code&amp;gt;. Tato penalizace je ale dost hrubá, a neumožňuje jemné ovlivnění plánovače. Přesto se používala a používá. Rober Haas napsal dvě extenze [https://www.postgresql.org/docs/devel/pgplanadvice.html &amp;lt;code&amp;gt;pg_plan_advice&amp;lt;/code&amp;gt;] a [https://www.postgresql.org/docs/devel/pgstashadvice.html &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;&lt;/ins&gt;code&amp;gt;pg_stash_advice&amp;lt;/code&amp;gt;]. Prvně zmíněná extenze umožňuje definovat jakási doporučení, která by měl planner respektovat. Pro každý plán lze zpětně dogenerovat tato doporučení:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EXPLAIN (PLAN_ADVICE)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;EXPLAIN (PLAN_ADVICE)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pgwiki2-mediawiki-:diff:1.41:old-1583:rev-1584:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>PavelStehule</name></author>
	</entry>
</feed>