Re: ltree_gist indexes broken after pg_upgrade from 12 to 13

Tomas Vondra <tomas.vondra@enterprisedb.com>

From: Tomas Vondra <tomas.vondra@enterprisedb.com>
To: Nikita Glukhov <n.gluhov@postgrespro.ru>, Tom Lane <tgl@sss.pgh.pa.us>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Andres Freund <andres@anarazel.de>
Date: 2022-03-05T07:13:00Z
Lists: pgsql-hackers
On 3/4/22 23:09, Nikita Glukhov wrote:
> On 04.03.2022 23:28, Tom Lane wrote:
> 
>> Tomas Vondra <tomas.vondra@enterprisedb.com> writes:
>>> On 3/4/22 20:29, Nikita Glukhov wrote:
>>>> So, we probably have corrupted indexes that were updated since such 
>>>> "incomplete" upgrade of ltree.
>>> IIRC pg_upgrade is not expected to upgrade extensions - it keeps the
>>> installed version of the extension, and that's intentional.
>> Yeah, exactly.  But this opens up an additional consideration we
>> have to account for: whatever we do needs to work with either 1.1
>> or 1.2 SQL-level versions of the extension.
>>
>> 			regards, tom lane
> 
> It becomes clear that ltree upgrade 1.1 => 1.2 is broken, the problem 
> is not so much related to PG12 => PG13+ upgrades.
> 

Well, it's quite a mess :-(

It very clearly is not just 1.1 -> 1.2 upgrade issue, because you can
get a crash with 1.1 after PG12 -> PG13 upgrade, as demonstrated
earlier. So just "fixing" the extension upgrade is no enough.

But as you showed, 1.1 -> 1.2 upgrade is broken too.

> 
> You can see here another problem: installation of opclass options 
> procedure does not invalidate relation's opclass options cache.
>

Seems like that.


regards

-- 
Tomas Vondra
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Fix default signature length for gist_ltree_ops

  2. Implement operator class parameters