From 06a8346c84bb67e4fe0448a1f784ee91b1b7bad1 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Fri, 25 May 2001 15:48:33 +0000
Subject: [PATCH] See attached for a small patch that enables plpython to build
 cleanly under Cygwin.  This patch together with my previous Python patch:

    http://postgresql.readysetnet.com/mhonarc/pgsql-patches/2001-05/msg00075.htm
l

enables full Python support (i.e., configure --with-python) for Cygwin
PostgreSQL.

Jason Tishler
---
 src/makefiles/Makefile.win       | 6 +++++-
 src/pl/plpython/Makefile         | 4 +++-
 src/pl/plpython/feature.expected | 2 +-
 src/pl/plpython/plpython.c       | 7 ++++---
 4 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/src/makefiles/Makefile.win b/src/makefiles/Makefile.win
index 626432b4351..7fce66b1ace 100644
--- a/src/makefiles/Makefile.win
+++ b/src/makefiles/Makefile.win
@@ -1,4 +1,4 @@
-# $Header: /cvsroot/pgsql/src/makefiles/Attic/Makefile.win,v 1.12 2001/05/25 14:28:58 momjian Exp $
+# $Header: /cvsroot/pgsql/src/makefiles/Attic/Makefile.win,v 1.13 2001/05/25 15:48:33 momjian Exp $
 LDFLAGS+= -g
 DLLTOOL= dlltool
 DLLWRAP= dllwrap
@@ -28,4 +28,8 @@ ifeq ($(findstring ecpg/lib,$(subdir)), ecpg/lib)
 override CPPFLAGS+= -DBUILDING_DLL=1
 endif
 
+ifeq ($(findstring src/pl/plpython,$(subdir)), src/pl/plpython)
+override CPPFLAGS+= -DUSE_DL_IMPORT
+endif
+
 override javadir := '$(shell cygpath -w $(javadir))'
diff --git a/src/pl/plpython/Makefile b/src/pl/plpython/Makefile
index 7475cdc1e7e..d8ae12f1659 100644
--- a/src/pl/plpython/Makefile
+++ b/src/pl/plpython/Makefile
@@ -1,4 +1,4 @@
-# $Header: /cvsroot/pgsql/src/pl/plpython/Makefile,v 1.6 2001/05/14 22:06:50 petere Exp $
+# $Header: /cvsroot/pgsql/src/pl/plpython/Makefile,v 1.7 2001/05/25 15:48:33 momjian Exp $
 
 subdir = src/pl/plpython
 top_builddir = ../../..
@@ -7,6 +7,8 @@ include $(top_builddir)/src/Makefile.global
 
 override CPPFLAGS := -I$(srcdir) -I$(python_includedir) $(CPPFLAGS)
 
+override DLLLIBS := $(BE_DLLLIBS) $(DLLLIBS)
+
 NAME = plpython
 SO_MAJOR_VERSION = 0
 SO_MINOR_VERSION = 0
diff --git a/src/pl/plpython/feature.expected b/src/pl/plpython/feature.expected
index eb294479307..b689c1f6154 100644
--- a/src/pl/plpython/feature.expected
+++ b/src/pl/plpython/feature.expected
@@ -29,7 +29,7 @@ SELECT global_test_two();
 (1 row)
 
 SELECT import_fail();
-NOTICE:  ('import socket failed -- untrusted dynamic module: socket',)
+NOTICE:  ('import socket failed -- untrusted dynamic module: _socket',)
     import_fail     
 --------------------
  failed as expected
diff --git a/src/pl/plpython/plpython.c b/src/pl/plpython/plpython.c
index 865ddb3aac6..dea0dc285f8 100644
--- a/src/pl/plpython/plpython.c
+++ b/src/pl/plpython/plpython.c
@@ -1,4 +1,4 @@
-/* $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.2 2001/05/12 01:30:30 petere Exp $ */
+/* $Header: /cvsroot/pgsql/src/pl/plpython/plpython.c,v 1.3 2001/05/25 15:48:33 momjian Exp $ */
 
 /*
  * plpython.c - python as a procedural language for PostgreSQL
@@ -1534,7 +1534,7 @@ static PyObject *PLy_spi_execute_fetch_result(SPITupleTable *, int, int);
 
 
 PyTypeObject PLy_PlanType = {
-  PyObject_HEAD_INIT(&PyType_Type)
+  PyObject_HEAD_INIT(NULL)
   0,                               /*ob_size*/
   "PLyPlan",                       /*tp_name*/
   sizeof(PLyPlanObject),           /*tp_size*/
@@ -1577,7 +1577,7 @@ PySequenceMethods PLy_result_as_sequence = {
 };
 
 PyTypeObject PLy_ResultType = {
-  PyObject_HEAD_INIT(&PyType_Type)
+  PyObject_HEAD_INIT(NULL)
   0,                                 /*ob_size*/
   "PLyResult",                       /*tp_name*/
   sizeof(PLyResultObject),           /*tp_size*/
@@ -2287,6 +2287,7 @@ PLy_init_plpy(void)
 
   /* initialize plpy module
    */
+  PLy_PlanType.ob_type = PLy_ResultType.ob_type = &PyType_Type;
   plpy = Py_InitModule("plpy", PLy_methods);
   plpy_dict = PyModule_GetDict(plpy);
 
-- 
GitLab