Re: Time to drop plpython2?

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Eisentraut <peter.eisentraut@enterprisedb.com>, pgsql-hackers@postgresql.org
Date: 2022-02-15T21:40:16Z
Lists: pgsql-hackers

Attachments

Hi,

On 2022-02-14 22:01:31 -0800, Andres Freund wrote:
> Attached the state as I have in the meson tree. Will split out the configure
> test tomorrow. Might or might get through the msvc scripts and docs as well.

Attached are four patches:
1: plpython: Reject Python 2 during build configuration.
2: plpython: Remove plpythonu, plpython2u extensions.
3: plpython: Remove regression test infrastructure for Python 2.
4: WIP: plpython: Code cleanup related to removal of Python 2 support.

I think we could apply 1) now? I've adjusted installation.sgml, but there's
plenty other references to python 2 left.

The configure already only checked for major version 3, but we document
requiring python 3.2. Afaics there was no version check at all in the msvc
build before this - I've now added one, but also just for 3, for now.

I think 2) is also ok, but I'd rather commit that a buildfarm cycle after 1).

I tested the msvc portion of 3) via CI. There's still some python specific code
in vcregress.pl:plcheck(), but I think that's OK for now. We could change the
python 3 regression tests to not create the extension themselves to get rid of
that, but that doesn't really seem like an advantage?

4) needs a bit more work as noted by two FIXMEs and review comments in
https://postgr.es/m/3fc1211d-960b-4b2f-3e96-a6099db847fc%40enterprisedb.com

There's a good chunk of docs work left.

Greetings,

Andres Freund

Commits

  1. plpython: add missing plpython.h include to plpy_plpymodule.h

  2. plpython: Adjust docs after removal of Python 2 support.

  3. plpython: Code cleanup related to removal of Python 2 support.

  4. plpython: Remove regression test infrastructure for Python 2.

  5. plpython: Remove plpythonu, plpython2u and associated transform extensions.

  6. plpython: Reject Python 2 during build configuration.

  7. Add traceback information to PL/Python errors