Thread: BUG #2065: Problem with language conversion in pg_dump
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?
"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
"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
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
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
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