Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1 - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1
Date
Msg-id 20121218163826.GC24700@momjian.us
Whole thread Raw
In response to Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1  (Bruce Momjian <bruce@momjian.us>)
Responses Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1  (Groshev Andrey <greenx@yandex.ru>)
List pgsql-hackers
On Mon, Dec 17, 2012 at 09:21:59PM -0500, Bruce Momjian wrote:
> > Mismatch of relation names: database "database", old rel public.lob.ВерсияВнешнегоДокумента$Документ_pkey, new rel
public.plob.ВерсияВнешнегоДокумент
> > а$Документ
> > Failure, exiting

I am now confused over the error message above.  This is the code that
is generating the error:
       /*        * TOAST table names initially match the heap pg_class oid.        * In pre-8.4, TOAST table names
changeduring CLUSTER; in pre-9.0,        * TOAST table names change during ALTER TABLE ALTER COLUMN SET TYPE.        *
In>= 9.0, TOAST relation names always use heap table oids, hence        * we cannot check relation names when upgrading
frompre-9.0.        * Clusters upgraded to 9.0 will get matching TOAST names.        */       if
(strcmp(old_rel->nspname,new_rel->nspname) != 0 ||           ((GET_MAJOR_VERSION(old_cluster.major_version) >= 900 ||
         strcmp(old_rel->nspname, "pg_toast") != 0) &&            strcmp(old_rel->relname, new_rel->relname) != 0))
     pg_log(PG_FATAL, "Mismatch of relation names: database \"%s\", "                  "old rel %s.%s, new rel
%s.%s\n",                 old_db->db_name, old_rel->nspname, old_rel->relname,                  new_rel->nspname,
new_rel->relname);

Looking at the Russian, I see 'old rel' public.lob.* and 'new rel'
public.plob.*.  I assume the database is called 'database', and the
schema is called 'public', but what is 'lob' and 'plob'?  If those are
tables or indexes, what is after the period?  Do you have periods
embedded in the table/index names?  That is certainly possible, but not
common, e.g.:
test=> create table "test.x" (y int);CREATE TABLE

Is the schema called "public.lob"?  I expected to see schema.objname.

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + It's impossible for everything to be true. +



pgsql-hackers by date:

Previous
From: Ronan Dunklau
Date:
Subject: Re: [v9.3] writable foreign tables
Next
From: Peter Eisentraut
Date:
Subject: system administration functions with hardcoded superuser checks