From 0793ab810038999c0659b3aad9525aa7ef4c8c26 Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Fri, 14 Mar 2025 08:17:40 +0100 Subject: [PATCH] Activate Python "Limited API" in PL/Python This allows building PL/Python against any Python 3.x version and using another Python 3.x version at run time. This is useful for installers that want to run against a separately downloaded Python, so that they don't have to bundle it themselves. This builds on the earlier patch to only use APIs supported by the Limited API. At the moment, this is not activated on MSVC because that leads to build failures that no one could explain or cared enough to address. This could be done later. Reviewed-by: Jakob Egger Discussion: https://www.postgresql.org/message-id/flat/ee410de1-1e0b-4770-b125-eeefd4726a24@eisentraut.org --- src/pl/plpython/plpython.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h index ec822577260..06fc1a5440f 100644 --- a/src/pl/plpython/plpython.h +++ b/src/pl/plpython/plpython.h @@ -19,6 +19,15 @@ #error Python.h must be included via plpython.h #endif +/* + * Enable Python Limited API + * + * XXX currently not enabled on MSVC because of build failures + */ +#if !defined(_MSC_VER) +#define Py_LIMITED_API 0x03020000 +#endif + /* * Pull in Python headers via a wrapper header, to control the scope of * the system_header pragma therein. -- 2.39.5