Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1

Поиск
Список
Период
Сортировка
От Groshev Andrey
Тема Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1
Дата
Msg-id 196921355852093@web26g.yandex.ru
обсуждение исходный текст
Ответ на Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1  (Bruce Momjian <bruce@momjian.us>)
Ответы Re: [GENERAL] trouble with pg_upgrade 9.0 -> 9.1
Список pgsql-hackers
later in the log pg_dump, I found the definition of "new rel"

--
-- Name: plob.ВерсияВнешнегоДокумента$Документ; Type: CONSTRAINT; Schema: public; Owner: postgres; Tablespace:
--

ALTER TABLE ONLY "lob.ВерсияВнешнегоДокумента$Документ"   ADD CONSTRAINT "plob.ВерсияВнешнегоДокумента$Документ"
PRIMARYKEY ("@Файл", "Страница"); 




18.12.2012, 19:38, "Bruce Momjian" <bruce@momjian.us>:
> 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 change during 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 from pre-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 по дате отправления:

Предыдущее
От: Simon Riggs
Дата:
Сообщение: Re: system administration functions with hardcoded superuser checks
Следующее
От: Pavel Stehule
Дата:
Сообщение: Re: system administration functions with hardcoded superuser checks