Search Postgresql Archives

Re: pg_upgrade Python version issue on openSUSE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/26/20 7:49 AM, Tom Lane wrote:
=?utf-8?Q?Paul_F=C3=B6rster?= <paul.foerster@xxxxxxxxx> writes:
On 26. Sep, 2020, at 16:07, Tom Lane <tgl@xxxxxxxxxxxxx> 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.klaver@xxxxxxxxxxx





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux