On Thu, 2025-12-04 at 13:12 +0100, Radoulov, Dimitre wrote: > I would like to request a clarification in the pg_dumpall > documentation regarding Large Objects (LOBs). The current > documentation does not explicitly state whether pg_dumpall includes > Large Objects in its output. > > This behavior is clear from the implementation, but not from the > documentation. > > I propose adding an explicit note such as: > > "pg_dumpall does not include Large Objects (BLOBs). To back up > Large Objects, use pg_dump -b per database."
At the beginning of the "pg_dumpall" page we see:
pg_dumpall is a utility for writing out (“dumping”) all PostgreSQL databases of a cluster into one script file. [...]. It does this by calling pg_dump for each database in the cluster.
And the pg_dump documentation says:
-b --large-objects --blobs (deprecated)
Include large objects in the dump. This is the default behavior except when --schema, --table, --schema-only, --statistics-only, or --no-data is specified.
Since pg_dumpall dumps the databases (and not parts of the databases), it will automatically dump large objects too.
But I admit that you have to go by circumstantial evidence here. But rather than explicitly naming large objects, perhaps it would be useful to add something like
pg_dumpall is primarily intended as a tool to upgrade database clusters. As such, it by default exports all data of the entire cluster. The only part of the state of a database cluster that is *not* included in the output of pg_dumpall are the configuration files and database parameters changed with ALTER SYSTEM.
Thank you for the clarification.
I believe the confusion comes from the historical behavior of pg_dump in older PostgreSQL versions.
Since pg_dumpall delegates to pg_dump, and pg_dump’s default behavior has included LOBs since 7.1, the current behavior is consistent with your explanation.
Thank you again for your time and for considering the suggestion.