v3-0002-Activate-Python-Limited-API-in-PL-Python.patch

text/plain

Filename: v3-0002-Activate-Python-Limited-API-in-PL-Python.patch
Type: text/plain
Part: 1
Message: Re: Use Python "Limited API" in PL/Python

Patch

Format: format-patch
Series: patch v3-0002
Subject: Activate Python "Limited API" in PL/Python
File+
src/pl/plpython/plpython.h 9 0
From dd07e62e041dfae67c1182226b772fe59a71f78e Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter@eisentraut.org>
Date: Wed, 5 Mar 2025 17:38:06 +0100
Subject: [PATCH v3 2/2] 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.

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.48.1