pg_dump is not backwards compatible in PG12

Started by Vera Gangeskar Johneabout 6 years ago2 messagesbugs
Jump to latest
#1Vera Gangeskar Johne
vjohne@salesforce.com

PG 12 bumped the pg_backup_archiver version to 1.14, however this version
is not supported in past versions of pg_backup_archiver, resulting in
restores to earlier versions not working.

- Supported pg_backup_archiver versions in 12:
https://github.com/postgres/postgres/blob/REL_12_0/src/bin/pg_dump/pg_backup_archiver.h#L77-L103
- Supported versions in 11:
https://github.com/postgres/postgres/blob/REL_11_STABLE/src/bin/pg_dump/pg_backup_archiver.h#L77-L102

The following steps will reproduce the error:
1. pg_dump on a 12.1 database
2. pg_restore to a postgres db on a version < 12 (in my case 9.6). The
error: `pg_restore: [archiver] unsupported version (1.14) in file header`

Questions/observations:
1. Is it expected that pg_dump will produce backwards incompatible dumps?
If so, is this documented somewhere?
2. The release notes don't mention this at all as far as I could see.
Should they?
3. Should this be a bug? This is the first backwards incompatibility in
pg_dump (that I can see) since 9.6

Thanks,
Vera Johne

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Vera Gangeskar Johne (#1)
Re: pg_dump is not backwards compatible in PG12

Vera Gangeskar Johne <vjohne@salesforce.com> writes:

PG 12 bumped the pg_backup_archiver version to 1.14, however this version
is not supported in past versions of pg_backup_archiver, resulting in
restores to earlier versions not working.

Yup. Use a newer version of pg_restore.

1. Is it expected that pg_dump will produce backwards incompatible dumps?

It's happened before, and it will happen again, no doubt.

2. The release notes don't mention this at all as far as I could see.
Should they?

Possibly. In practice, backwards-incompatibility of the SQL contained
in the dump is a bigger issue most of the time than the dump file format
proper, and there are issues of that sort in almost every major release.

3. Should this be a bug?

No. It's impractical to freeze that file format, because we keep adding
new things that pg_dump has to deal with (as the version history you found
shows). Maybe it could've been designed to be more extension-friendly,
but such a redesign would itself be backwards-incompatible.

regards, tom lane