postgres.git / summary / log / commit / refs
commit 0793ab810038999c0659b3aad9525aa7ef4c8c26
Author: Peter Eisentraut <peter@eisentraut.org>
Date: Fri Mar 14 07:17:40 2025 +0000
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 <jakob@eggerapps.at>
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.
[parent: 05cbd6cb22d2]