Hi David
About documentation :
On Fri, Jan 23, 2026 at 3:15 AM David Rowley <dgrowleyml@gmail.com> wrote:
>
> Aside from that, nothing in the documentation mentions that this is
> for "heap" tables only.
The <note> part did mention it and even gave an example
<varlistentry>
<term><option>--max-table-segment-pages=<replaceable
class="parameter">npages</replaceable></option></term>
<listitem>
<para>
Dump data in segments based on number of pages in the main relation.
If the number of data pages in the relation is more than
<replaceable class="parameter">npages</replaceable>
the data is split into segments based on that number of pages.
Individual segments can be dumped in parallel.
</para>
<note>
<para>
The option <option>--max-table-segment-pages</option> is
applied to only pages
in the main heap and if the table has a large TOASTed part
this has to be
taken into account when deciding on the number of pages to use.
In the extreme case a single 8kB heap page can have ~200
toast pointers each
corresponding to 1GB of data. If this data is also
non-compressible then a
single-page segment can dump as 200GB file.
</para>
</note>
Would it be a good idea to add a 2nd paragraph like this to make it
even more clear ?
<para>
It is also possible that segments end up with very different
sizes even when
no TOAST is involved, as there is no guarantees that pages
are not unevenly
bloated in a real production database up to a point where
some pagese may
have no live tuples in them.
</para>
---
Hannu