Re: pg_upgrade Python version issue on openSUSE

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Paul Förster <paul(dot)foerster(at)gmail(dot)com>
Cc: PostgreSQL General <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: pg_upgrade Python version issue on openSUSE
Date: 2020-09-26 15:07:51
Message-ID: bd539adf-a0ed-2d5d-f471-b47e73dd4517@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 9/26/20 7:49 AM, Tom Lane wrote:
> =?utf-8?Q?Paul_F=C3=B6rster?= <paul(dot)foerster(at)gmail(dot)com> writes:
>> On 26. Sep, 2020, at 16:07, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>>> However, I don't understand how "drop extension plpythonu"
>>> worked for you, given your previous query showing that
>>> that extension wasn't installed.
>
>> just checked with another 12.4. It's the same:
>
>> postgres=# select * from pg_available_extension_versions where installed;
>> name | version | installed | superuser | relocatable | schema | requires | comment
>> ---------+---------+-----------+-----------+-------------+------------+----------+--------------------------------------------------------------
>> plperlu | 1.0 | t | t | f | pg_catalog | | PL/PerlU untrusted procedural language
>> dblink | 1.2 | t | t | t | | | connect to other PostgreSQL databases from within a database
>> plpgsql | 1.0 | t | f | f | pg_catalog | | PL/pgSQL procedural language
>> plperl | 1.0 | t | f | f | pg_catalog | | PL/Perl procedural language
>> (4 rows)
>
>> postgres=# drop extension plpythonu ;
>> DROP EXTENSION
>> postgres=# create extension plpython3u ;
>> CREATE EXTENSION
>
> Actually, now that I think about it, you're querying the wrong view.
> I'm too lazy to check the source code right now, but I'm pretty sure
> that pg_available_extension_versions is mostly driven off what control
> files exist in the on-disk libdir. But that may have little to do with
> what's in the system catalogs. You should have checked pg_extension,
> or just "\dx" in psql.

I believe the issue is here:

select * from pg_pltemplate ;

plpythonu | f | f | plpython_call_handler |
plpython_inline_handler | plpython_validator | $libdir/plpython2 | NULL
plpython2u | f | f | plpython2_call_handler |
plpython2_inline_handler | plpython2_validator | $libdir/plpython2 | NULL
plpython3u | f | f | plpython3_call_handler |
plpython3_inline_handler | plpython3_validator | $libdir/plpython3 | NULL

The default plpython is plpythonu and that points at $libdir/plpython2.

The instructions here:

https://www.postgresql.org/docs/12/plpython-python23.html

offer a work around:

"Daredevils, who want to build a Python-3-only operating system
environment, can change the contents of pg_pltemplate to make plpythonu
be equivalent to plpython3u, keeping in mind that this would make their
installation incompatible with most of the rest of the world."

>
> regards, tom lane
>
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Paul Förster 2020-09-26 15:11:23 Re: pg_upgrade Python version issue on openSUSE
Previous Message Tom Lane 2020-09-26 14:49:26 Re: pg_upgrade Python version issue on openSUSE