Обсуждение: Documentation clarification request: pg_dumpall and Large Objects

Поиск
Список
Период
Сортировка

Documentation clarification request: pg_dumpall and Large Objects

От
"Radoulov, Dimitre"
Дата:
Hello,

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.

In the source code (pg_dumpall.c), there is a comment indicating
that pg_dumpall forces all pg_dump output to plain text. Since Large
Objects are only included by pg_dump when using -b or non-text
archive formats (custom/tar), pg_dumpall cannot include LOBs 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."

This clarification would help prevent user confusion during
cluster-wide backup procedures.

Thank you.

Best regards,
Dimitre Radoulov 

Re: Documentation clarification request: pg_dumpall and Large Objects

От
Laurenz Albe
Дата:
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.

Yours,
Laurenz Albe



Re: Documentation clarification request: pg_dumpall and Large Objects

От
"Radoulov, Dimitre"
Дата:


Il Gio 4 Dic 2025, 16:50 Laurenz Albe <laurenz.albe@cybertec.at> ha scritto:
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.

Best regards 
Dimitre

Re: Documentation clarification request: pg_dumpall and Large Objects

От
Laurenz Albe
Дата:
On Thu, 2025-12-04 at 18:12 +0100, Radoulov, Dimitre wrote:
> Il Gio 4 Dic 2025, 16:50 Laurenz Albe <laurenz.albe@cybertec.at> ha scritto:
> > 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.
> >
> > 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 again for your time and for considering the suggestion.

Attached is a patch for such a change.

I'll add it to the next commitfest.

Yours,
Laurenz Albe

Вложения