Subject: pg_upgrade from 18beta1 -> 18beta3 - problem with btree_gist contrib module / extension

From: Achilleas Mantzios <[email-masked]>
Date: Wed, 20 Aug 2025 13:50:53 +0100

pg_restore: from TOC entry 4295; 1255 596569951 FUNCTION 
gist_stratnum_btree(integer) postgres
pg_restore: error: could not execute query: ERROR:  could not find 
function "gist_stratnum_btree" in file "/usr/local/pgsql/lib/btree_gist.so"
Command was: CREATE FUNCTION "public"."gist_stratnum_btree"(integer) 
RETURNS smallint
    LANGUAGE "c" IMMUTABLE STRICT PARALLEL SAFE
    AS '$libdir/btree_gist', 'gist_stratnum_btree';

The solution was to somehow restart 18beta1, drop btree_gist and all its 
dependent constraints / indexes / objects , pg_upgrade and finally 
re-create extension and dependent objects.

---

From: Adrian Klaver <[email-masked]>
Date: Wed, 20 Aug 2025 07:39:06 -0700

>     AS '$libdir/btree_gist', 'gist_stratnum_btree';

I can not find gist_stratnum_btree in:

https://www.postgresql.org/docs/18/btree-gist.html

or in the source.

How did it end up in the database?

> dependent constraints / indexes / objects , pg_upgrade and finally re- 
> create extension and dependent objects.
> 

Something more then DROP EXTENSION/CREATE EXTENSION btree_gist?

-- 
Adrian Klaver
[email-masked]

---

From: Paul A Jungwirth <[email-masked]>
Date: Wed, 20 Aug 2025 09:49:31 -0500

> How did it end up in the database?

gist_stratnum_btree was in beta1 but was renamed to
gist_translate_cmptype_btree by
32edf732e8dc9eb3e7a923aeb67d49246744a20a.

> Something more then DROP EXTENSION/CREATE EXTENSION btree_gist?

That seems like the easiest fix to me. But if you've built indexes
based on those opclasses then more work is required, as here.

I don't know what pg_upgrade tries to support for moving from one beta
release to another. Is this something we should try to fix?

Yours,

-- 
Paul              ~{:-)
[email-masked]

---

From: Tom Lane <[email-masked]>
Date: Wed, 20 Aug 2025 10:56:06 -0400

> How did it end up in the database?

See commit 32edf732e.  Perhaps that renaming should not have been done
post-beta1, but that's where we are.

			regards, tom lane

---

From: Tom Lane <[email-masked]>
Date: Wed, 20 Aug 2025 10:58:23 -0400

> release to another. Is this something we should try to fix?

It's water over the dam now, I think.  If we had such a breakage
between officially-released versions, that would be bad enough to
justify jumping through hoops.  But beta releases have always been
"use at your own risk".

			regards, tom lane