Thread: BUG #2065: Problem with language conversion in pg_dump

BUG #2065: Problem with language conversion in pg_dump

From
"Wim Audenaert"
Date:
The following bug has been logged online:

Bug reference:      2065
Logged by:          Wim Audenaert
Email address:      wima85@hotmail.com
PostgreSQL version: 8.1.0.2
Operating system:   Windows XP
Description:        Problem with language conversion in pg_dump
Details:

I have a database created with encoding UTF8 while I used SQL_ASCII for the
installation of Postgres 8.1.0.

When I try to do a pg_dump of my database, I get the following error
message:

pg_dump: SQL command failed
pg_dump: Error message from server: ERROR:  cache lookup failed for function
170
39
pg_dump: The command was: SELECT tableoid, oid, adnum,
pg_catalog.pg_get_expr(ad
bin, adrelid) AS adsrc FROM pg_catalog.pg_attrdef WHERE adrelid =
'23268'::pg_ca
talog.oid

I looked for the function 17039 in the pg_proc table, and this function
doesn't exist. It does exists in an older version of the database (8.0).

I tried to use the encoding parameter in pg_dump, but without success.

What can I do resolve this problem?

Re: BUG #2065: Problem with language conversion in pg_dump

From
Tom Lane
Date:
"Wim Audenaert" <wima85@hotmail.com> writes:
> When I try to do a pg_dump of my database, I get the following error
> message:

> pg_dump: SQL command failed
> pg_dump: Error message from server: ERROR:  cache lookup failed for function
> 17039

I'm not sure how you managed that, but I'm sure that it's entirely
unrelated to the database's encoding.

Do you still have the dump file that you used to move from 8.0 to 8.1?
If so, what does it show as the declaration for this table?

            regards, tom lane

Re: BUG #2065: Problem with language conversion in pg_dump

From
Tom Lane
Date:
"Wim Audenaert" <wima85@hotmail.com> writes:
> When I create a new database, this function (oid 17039 and used for utf8
> translation) is not defined in the pg_proc table. I tried to create a new
> database. The pg_proc table contains several functions, but not this one.

Hmm, I see that utf8_to_tcvn() doesn't seem to be there anymore, but
whether that's a bug in itself is for someone else to answer (Tatsuo?).
What I'm wondering about is how a reference to a nonexistent function
OID got into your new database.  There is no case in which pg_dump
should reference a function by OID.

            regards, tom lane

Re: BUG #2065: Problem with language conversion in pg_dump

From
"Wim Audenaert"
Date:
Hello Tom,

It's failing on the pg_proc table. This table is not included in the
standard dump.

When I create a new database, this function (oid 17039 and used for utf8
translation) is not defined in the pg_proc table. I tried to create a new
database. The pg_proc table contains several functions, but not this one.

Best regards,

Wim


>From: Tom Lane <tgl@sss.pgh.pa.us>
>To: "Wim Audenaert" <wima85@hotmail.com>
>CC: pgsql-bugs@postgresql.org
>Subject: Re: [BUGS] BUG #2065: Problem with language conversion in pg_dump
>Date: Tue, 22 Nov 2005 22:36:56 -0500
>
>"Wim Audenaert" <wima85@hotmail.com> writes:
> > When I try to do a pg_dump of my database, I get the following error
> > message:
>
> > pg_dump: SQL command failed
> > pg_dump: Error message from server: ERROR:  cache lookup failed for
>function
> > 17039
>
>I'm not sure how you managed that, but I'm sure that it's entirely
>unrelated to the database's encoding.
>
>Do you still have the dump file that you used to move from 8.0 to 8.1?
>If so, what does it show as the declaration for this table?
>
>            regards, tom lane

Re: BUG #2065: Problem with language conversion in pg_dump

From
"Wim Audenaert"
Date:
Hi Tom,

The problem is solved. I have reinstalled Postgres, and now pg_dump works
fine.

Best regards, and thanks for your help.

Wim


>From: Tom Lane <tgl@sss.pgh.pa.us>
>To: "Wim Audenaert" <wima85@hotmail.com>
>CC: pgsql-bugs@postgresql.org
>Subject: Re: [BUGS] BUG #2065: Problem with language conversion in pg_dump
>Date: Tue, 22 Nov 2005 23:45:58 -0500
>
>"Wim Audenaert" <wima85@hotmail.com> writes:
> > When I create a new database, this function (oid 17039 and used for utf8
> > translation) is not defined in the pg_proc table. I tried to create a
>new
> > database. The pg_proc table contains several functions, but not this
>one.
>
>Hmm, I see that utf8_to_tcvn() doesn't seem to be there anymore, but
>whether that's a bug in itself is for someone else to answer (Tatsuo?).
>What I'm wondering about is how a reference to a nonexistent function
>OID got into your new database.  There is no case in which pg_dump
>should reference a function by OID.
>
>            regards, tom lane

Re: BUG #2065: Problem with language conversion in pg_dump

From
Bruce Momjian
Date:
Tom Lane wrote:
> "Wim Audenaert" <wima85@hotmail.com> writes:
> > When I create a new database, this function (oid 17039 and used for utf8
> > translation) is not defined in the pg_proc table. I tried to create a new
> > database. The pg_proc table contains several functions, but not this one.
>
> Hmm, I see that utf8_to_tcvn() doesn't seem to be there anymore, but
> whether that's a bug in itself is for someone else to answer (Tatsuo?).
> What I'm wondering about is how a reference to a nonexistent function
> OID got into your new database.  There is no case in which pg_dump
> should reference a function by OID.

TCVN is was renamed to the official name PG_WIN1258 in 8.1.  This was
part of the general encoding renaming in 8.1.

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073