Hi all, trying to performe upgrade from 12 to 13 installed from Centos8 repo gives such error:
cat loadable_libraries.txt
could not load library "$libdir/plpython2": ERROR: could not access file "$libdir/plpython2": No such file or directory
could not load library "$libdir/plpython2": ERROR: could not access file "$libdir/plpython2": No such file or directory
digging around:
1.
drop extension plpythonu;
ERROR: extension "plpythonu" does not exist
ERROR: extension "plpythonu" does not exist
2.
postgres=# select * from pg_pltemplate ;
tmplname | tmpltrusted | tmpldbacreate | tmplhandler | tmplinline | tmplvalidator | tmpllibrary | tmplacl
------------+-------------+---------------+------------------------+--------------------------+---------------------+-------------------+---------
plpgsql | t | t | plpgsql_call_handler | plpgsql_inline_handler | plpgsql_validator | $libdir/plpgsql |
pltcl | t | t | pltcl_call_handler | | | $libdir/pltcl |
pltclu | f | f | pltclu_call_handler | | | $libdir/pltcl |
plperl | t | t | plperl_call_handler | plperl_inline_handler | plperl_validator | $libdir/plperl |
plperlu | f | f | plperlu_call_handler | plperlu_inline_handler | plperlu_validator | $libdir/plperl |
plpythonu | f | f | plpython_call_handler | plpython_inline_handler | plpython_validator | $libdir/plpython2 |
plpython2u | f | f | plpython2_call_handler | plpython2_inline_handler | plpython2_validator | $libdir/plpython2 |
plpython3u | f | f | plpython3_call_handler | plpython3_inline_handler | plpython3_validator | $libdir/plpython3 |
(8 rows)
tmplname | tmpltrusted | tmpldbacreate | tmplhandler | tmplinline | tmplvalidator | tmpllibrary | tmplacl
------------+-------------+---------------+------------------------+--------------------------+---------------------+-------------------+---------
plpgsql | t | t | plpgsql_call_handler | plpgsql_inline_handler | plpgsql_validator | $libdir/plpgsql |
pltcl | t | t | pltcl_call_handler | | | $libdir/pltcl |
pltclu | f | f | pltclu_call_handler | | | $libdir/pltcl |
plperl | t | t | plperl_call_handler | plperl_inline_handler | plperl_validator | $libdir/plperl |
plperlu | f | f | plperlu_call_handler | plperlu_inline_handler | plperlu_validator | $libdir/plperl |
plpythonu | f | f | plpython_call_handler | plpython_inline_handler | plpython_validator | $libdir/plpython2 |
plpython2u | f | f | plpython2_call_handler | plpython2_inline_handler | plpython2_validator | $libdir/plpython2 |
plpython3u | f | f | plpython3_call_handler | plpython3_inline_handler | plpython3_validator | $libdir/plpython3 |
(8 rows)
3.
postgres=# select * from pg_language ;
oid | lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl
-------+----------+----------+---------+--------------+---------------+-----------+--------------+--------
12 | internal | 10 | f | f | 0 | 0 | 2246 |
13 | c | 10 | f | f | 0 | 0 | 2247 |
14 | sql | 10 | f | t | 0 | 0 | 2248 |
14177 | plpgsql | 10 | t | t | 14174 | 14175 | 14176 |
(4 rows)
oid | lanname | lanowner | lanispl | lanpltrusted | lanplcallfoid | laninline | lanvalidator | lanacl
-------+----------+----------+---------+--------------+---------------+-----------+--------------+--------
12 | internal | 10 | f | f | 0 | 0 | 2246 |
13 | c | 10 | f | f | 0 | 0 | 2247 |
14 | sql | 10 | f | t | 0 | 0 | 2248 |
14177 | plpgsql | 10 | t | t | 14174 | 14175 | 14176 |
(4 rows)
4.
postgres=# select DISTINCT l.lanname as function_language
postgres-# from pg_proc p
postgres-# left join pg_language l on p.prolang = l.oid;
function_language
-------------------
c
sql
internal
(3 rows)
postgres-# from pg_proc p
postgres-# left join pg_language l on p.prolang = l.oid;
function_language
-------------------
c
sql
internal
(3 rows)
5.
postgres=# SELECT oid::regprocedure
postgres-# FROM pg_catalog.pg_proc
postgres-# WHERE probin = '$libdir/plpython2';
oid
-----
(0 rows)
postgres-# FROM pg_catalog.pg_proc
postgres-# WHERE probin = '$libdir/plpython2';
oid
-----
(0 rows)
Question: where is plpython2 comming from during pg_upgrade? Is this pg_upgrade bug or something else?
Thx
Marcin