Re: ltree_gist indexes broken after pg_upgrade from 12 to 13
Nikita Glukhov <n.gluhov@postgrespro.ru>
From: Nikita Glukhov <n.gluhov@postgrespro.ru>
To: Tom Lane <tgl@sss.pgh.pa.us>, Tomas Vondra <tomas.vondra@enterprisedb.com>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>,
Andres Freund <andres@anarazel.de>
Date: 2022-03-04T22:09:26Z
Lists: pgsql-hackers
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. The following examples crashes PG13+: CREATE EXTENSION ltree VERSION "1.1"; CREATE TABLE test AS SELECT i::text::ltree data FROM generate_series(1, 100000) i; CREATE INDEX ON test USING gist (data); ALTER EXTENSION ltree UPDATE TO "1.2"; -- works, cached bytea options is still NULL and siglen is 28 SELECT * FROM test WHERE data = '12345'; \connect -- crash, siglen = 8 SELECT * FROM test WHERE data = '12345'; You can see here another problem: installation of opclass options procedure does not invalidate relation's opclass options cache. -- Nikita Glukhov Postgres Professional:http://www.postgrespro.com The Russian Postgres Company
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix default signature length for gist_ltree_ops
- bad202c615c9 13.7 landed
- 7d30f59da714 14.3 landed
- 7e74aafc4335 15.0 landed
-
Implement operator class parameters
- 911e70207703 13.0 cited