Re: PostgreSQL upgrade from 10 to 12 fails with "ERROR: column r.relhasoids does not exist at character 1616"

From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Arne Henrik Segtnan <arne(at)basis-consulting(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: PostgreSQL upgrade from 10 to 12 fails with "ERROR: column r.relhasoids does not exist at character 1616"
Date: 2021-05-04 16:52:02
Message-ID: 20210504165202.GD27412@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, May 4, 2021 at 12:43:36PM -0400, Tom Lane wrote:
> Arne Henrik Segtnan <arne(at)basis-consulting(dot)com> writes:
> > When trying to upgrade from PostgreSQL 10 to 12, the installation fails as shown below.
>
> > 2021-05-04 13:06:05.614 CEST [12890] postgres(at)zabbix_db ERROR: column r.relhasoids does not exist at character 1616
> > 2021-05-04 13:06:05.614 CEST [12890] postgres(at)zabbix_db STATEMENT:
> > -- For binary upgrade, must preserve pg_type oid
>
> > SELECT pg_catalog.binary_upgrade_set_next_pg_type_oid('162222'::pg_catalog.oid);
> > -- For binary upgrade, must preserve pg_type array oid
> > SELECT pg_catalog.binary_upgrade_set_next_array_pg_type_oid('162221'::pg_catalog.oid);
>
>
> > -- For binary upgrade, must preserve pg_class oids
> > SELECT pg_catalog.binary_upgrade_set_next_heap_pg_class_oid('162220'::pg_catalog.oid);
>
>
> > CREATE VIEW "repack"."tables" AS
> > SELECT ("r"."oid")::"regclass" AS "relname",
> > "r"."oid" AS "relid",
> > "r"."reltoastrelid",
> > CASE
> > .
> > .
> > .
>
> You didn't show us the rest of the command, but it looks like
> this view contains a reference to pg_class.relhasoids. As
> Bruce noted, that column no longer exists, so you're not going
> to be able to transparently upgrade this view.
>
> I don't know what this view is from, though the schema name
> "repack" is suggestive. Possibly you could drop whatever it's
> a part of, and then reinstall an updated version after upgrading?

Yeah, Tom, I think you are on to something. I couldn't figure out where
the r.relhasoids was referenced in the rest of the log output, but if it
is on the lines that are part of CREATE VIEW, it certainly could be the
case that the view references a pre-PG-12 column of pg_class. To fix
it, Tom is right that removing the view then recreating it with PG-12
pg_class column assumptions is the right fix. I actually rarely see
this kind of failure.

--
Bruce Momjian <bruce(at)momjian(dot)us> https://momjian.us
EDB https://enterprisedb.com

If only the physical world exists, free will is an illusion.

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Tomas Vondra 2021-05-04 18:22:28 Re: Extended stats - value not in MCV list
Previous Message Tom Lane 2021-05-04 16:46:58 Re: AW: Huge performance penalty with parallel queries in Windows x64 v. Linux x64