Thread: Proposed TODO: --encoding option for pg_dump
Folks, There's no time to do this for 8.1, but I'd like to get it on the books for 8.2: The Problem: Occassionally a DBA needs to dump a database to a new encoding. In instances where the current encoding, (or lack of an encoding, like SQL_ASCII) is poorly supported on the target database server, it can be useful to dump into a particular encoding. But, currently the only way to set the encoding of a pg_dump file is to change client_encoding in postgresql.conf and restart postmaster. This is more than a little awkward for production systems. The TODO: add an --encoding=[encoding name] option to pg_dump. This would set client_encoding for pg_dump's session(s). -- --Josh Josh Berkus Aglio Database Solutions San Francisco
On Tue, 28 Jun 2005, Josh Berkus wrote: > The TODO: add an --encoding=[encoding name] option to pg_dump. This would > set client_encoding for pg_dump's session(s). > What about just using the PGCLIENTENCODING environment variable? Kris Jurka
Josh Berkus wrote: > currently the only way to set the encoding of a pg_dump file is to > change client_encoding in postgresql.conf and restart postmaster. Another way is to set the environment variable PGCLIENTENCODING. -- Peter Eisentraut http://developer.postgresql.org/~petere/
> There's no time to do this for 8.1, but I'd like to get it on > the books for > 8.2: > > The Problem: Occassionally a DBA needs to dump a database to a new > encoding. In instances where the current encoding, (or lack of an > encoding, like SQL_ASCII) is poorly supported on the target > database server, it can be useful to dump into a particular > encoding. But, currently the only way to set the encoding of > a pg_dump file is to change > client_encoding in postgresql.conf and restart postmaster. > This is more > than a little awkward for production systems. > > The TODO: add an --encoding=[encoding name] option to > pg_dump. This would set client_encoding for pg_dump's session(s). I *think* that's easy enough to do in time for 8.1. Trivial patch attached. I hope it's enough :-) It passed my very quick testing... (Yup, I read the mails aobut PGCLIENTENCODING, but an option to pg_dump is certainly easier) //Magnus
Attachment
On Tue, Jun 28, 2005 at 10:24:19PM +0200, Magnus Hagander wrote: > I *think* that's easy enough to do in time for 8.1. Trivial patch > attached. I hope it's enough :-) It passed my very quick testing... > > (Yup, I read the mails aobut PGCLIENTENCODING, but an option to pg_dump > is certainly easier) You forgot to document the long option, I think. -- Alvaro Herrera (<alvherre[a]surnet.cl>) "No necesitamos banderas No reconocemos fronteras" (Jorge González)
Alvaro Herrera wrote: > On Tue, Jun 28, 2005 at 10:24:19PM +0200, Magnus Hagander wrote: > >> I *think* that's easy enough to do in time for 8.1. Trivial patch >> attached. I hope it's enough :-) It passed my very quick testing... >> >> (Yup, I read the mails aobut PGCLIENTENCODING, but an option to pg_dump >> is certainly easier) > > You forgot to document the long option, I think. Are the man pages generated from the sgml docs? Have never had a look at that. Best Regards, Michael Paesold
I support to add the option, for I've been seeing too many of our client got 'bad' dump just because they don't set PGCLIENTENCODING correctly, (mostly because they use UTF8 as database encoding but use some other encoding, like GBK as client encoding, but some words break the autoconversion at present version and set PGCLIENTENCODING to UTF8 would fix the problem). Adding such a switch would remind DBAs there exists some encoding conversion. In fact, I even think that we should use database encoding to dump data regardless the PGCLIENTENCODING setting (unless the user set the --encoding switch explicit), but I think that might be break someone's application somewhere. :( regards laser