Always include encoding of database in pg_dumpall

From: Jeremy Evans <code(at)jeremyevans(dot)net>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Always include encoding of database in pg_dumpall
Date: 2012-10-18 17:44:33
Message-ID: 20121018174433.GL4122@jeremyevans.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I've have a PostgreSQL database cluster that I've continually upgraded
from 7.1 to 9.1 without problems using pg_dumpall and psql. When
migrating to 9.2, I decided to change the default encoding for the
database cluster from SQL_ASCII to UTF8. When I went to restore my
database backup (created using 9.1's pg_dumpall), the tables
containing data not in UTF8 format were empty.

This appears to be caused by pg_dumpall omitting the ENCODING when
dumping if it is the same as the current database cluster's default
encoding. I believe this is a bad idea, as there is no guarantee the
backup will be restored on a cluster with the same default encoding.

This patch always sets the ENCODING for the databases, even if it is
the same as the current database cluster default encoding. Thoughts?

I'm not sure if similar changes should be made for LC_COLLATE or
LC_CTYPE, but that's something that should be considered.

Please CC me when responding as I don't currently subscribe to the
list.

Thanks,
Jeremy

Attachment Content-Type Size
pg_dumpall_encoding.diff text/plain 660 bytes

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2012-10-18 18:05:43 Re: [PATCH] lock_timeout and common SIGALRM framework
Previous Message Josh Berkus 2012-10-18 17:33:38 Re: [RFC] CREATE QUEUE (log-only table) for londiste/pgQ ccompatibility