Hi David About documentation :
On Fri, Jan 23, 2026 at 3:15 AM David Rowley <[email protected]> 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
