Skip site navigation (1) Skip section navigation (2)

BUG #6742: pg_dump doesn't convert encoding of DB object names to OSencoding

From: exclusion(at)gmail(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #6742: pg_dump doesn't convert encoding of DB object names to OSencoding
Date: 2012-07-18 07:17:21
Message-ID: E1SrOVd-00028F-Sz@wrigleys.postgresql.org (view raw or flat)
Thread:
Lists: pgsql-bugs
The following bug has been logged on the website:

Bug reference:      6742
Logged by:          Alexander LAW
Email address:      exclusion(at)gmail(dot)com
PostgreSQL version: 9.1.4
Operating system:   Windows
Description:        

When I try to dump database with UTF-8 encoding in Windows, I get unreadable
object names.
Please look at the screenshot (http://oi50.tinypic.com/2lw6ipf.jpg). On the
left window all the pg_dump messages displayed correctly (except for the
prompt password (bug #6510)), but the non-ASCII object name is gibberish. On
the right window (where dump is done with the Windows 1251 encoding (OS
Encoding for Russian locale)) everything is right.

It seems that pg_dump doesn't do necessary encoding conversion for the
object names.
For example, there is a code in pg_dump.c:
    write_msg(NULL, "finding the columns and types of table \"%s\"\n",
        tbinfo->dobj.name);
or in backup_archiver.c
    ahlog(AH, 1, "setting owner and privileges for %s %s\n",
        te->desc, te->tag);

And then it comes to the following function in dumputils.c:
void
vwrite_msg(const char *modulename, const char *fmt, va_list ap)
{
...
        vfprintf(stderr, _(fmt), ap);
}

So the format string goes through the translation and encoding conversion
(for the current OS locale), but tbinfo->dobj.name (or te->tag) does not.
I think it would be appropriate to convert all the obect names with some
function like dump_output_encoding_to_OS_encoding.

Best regards,
Alexander


Responses

pgsql-bugs by date

Next:From: Thomas KellererDate: 2012-07-18 07:21:53
Subject: Re: BUG #6742: pg_dump doesn't convert encoding of DB object names to OS encoding
Previous:From: Tom LaneDate: 2012-07-18 04:31:53
Subject: Re: BUG #6733: All Tables Empty After pg_upgrade (PG 9.2.0 beta 2)

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group