Thread: PL/Python Postgresql 7.1.1 under Cygwin
Hi, me again... this is what I wrote: > I tried to build also the plpython so I could write my trigger functions in > Python. But the Makefile is not very adapted. I don't know how to call > dlltool, etc. I'll try to copy the tcl one and adapt it. I hope it'll help. now I did it, so I wanted to ask 1. if somebody could merge my makefile with the original one 2. put the plpython into the postgres source tree 'pl' (as experimental or whatever) I have not much experience with Makefiles. The attached Makefile is the one I used. The other file is the complete plpython package I picked up I don't remember where. Notes of my makefile: 1. the 2nd and third overrides may to seem necessarry. I think ./configure could create this makefile. We need to know the Includedir and python version. 2. The first override (CFLAGS) removes a lot of compiler warnings. So I leave it in. 3. I don't know what the -fPIC is for. Under Win32 it is ignored. 4. In the SHLIB_LINK line the -lpython2.1 could be created with ./configure again. I had to add the -L/usr/bin because under cygwin 1.31 I have the libpython2.1.dll in the /usr/bin directory no the /usr/lib. 5. I still didn't try the dll so perhaps it doesn't work. Best regards, Erny Spain
Attachment
Erny, [OK, let's try again with the attachment this time...] On Fri, May 11, 2001 at 03:54:06AM +0200, Ernesto Revilla wrote: > now I did it, so I wanted to ask > 1. if somebody could merge my makefile with the original one > 2. put the plpython into the postgres source tree 'pl' (as experimental or > whatever) It appears that plpython was recently (i.e., 2001/05/09) added to PostgreSQL CVS. So the above is not necessary. However, a small patch is necessary for plpython to build cleanly under Cygwin. Please get the latest PostgreSQL from CVS and apply the attached patch. I ran the supplied test.sh and all tests passed with the exception of the oid related ones (which is to be expected). I would be very interested to hear if plpython works for you in a real application, so please let me know. I intend improve my patch as follows: 1. add -DUSE_DL_IMPORT to CPPFLAGS in a cleaner way 2. deal with the different socket module name in Python 1.5.x and 2.x, if possible I will also test it out on a non-Cygwin platform to make sure that I didn't break anything on a UNIX platform. Once the above is completed, I will submit the patch to pgsql-patches for consideration. Thanks, Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Attachment
Erny, On Fri, May 11, 2001 at 03:54:06AM +0200, Ernesto Revilla wrote: > now I did it, so I wanted to ask > 1. if somebody could merge my makefile with the original one > 2. put the plpython into the postgres source tree 'pl' (as experimental or > whatever) It appears that plpython was recently (i.e., 2001/05/09) added to PostgreSQL CVS. So the above is not necessary. However, a small patch is necessary for plpython to build cleanly under Cygwin. Please get the latest PostgreSQL from CVS and apply the attached patch. I ran the supplied test.sh and all tests passed with the exception of the oid related ones (which is to be expected). I would be very interested to hear if plpython works for you in a real application, so please let me know. I intend improve my patch as follows: 1. add -DUSE_DL_IMPORT to CPPFLAGS in a cleaner way 2. deal with the different socket module name in Python 1.5.x and 2.x, if possible I will also test it out on a non-Cygwin platform to make sure that I didn't break anything on a UNIX platform. Once the above is completed, I will submit the patch to pgsql-patches for consideration. Thanks, Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
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.html enables full Python support (i.e., configure --with-python) for Cygwin PostgreSQL. See below for some more details and one issue. On Mon, May 14, 2001 at 10:26:39AM -0400, Jason Tishler wrote: > On Fri, May 11, 2001 at 03:54:06AM +0200, Ernesto Revilla wrote: > > now I did it, so I wanted to ask > > 1. if somebody could merge my makefile with the original one > > 2. put the plpython into the postgres source tree 'pl' (as experimental or > > whatever) > > It appears that plpython was recently (i.e., 2001/05/09) added to > PostgreSQL CVS. So the above is not necessary. > > However, a small patch is necessary for plpython to build cleanly under > Cygwin. Please get the latest PostgreSQL from CVS and apply the > attached patch. I ran the supplied test.sh and all tests passed with > the exception of the oid related ones (which is to be expected). > > I would be very interested to hear if plpython works for you in a real > application, so please let me know. > > I intend improve my patch as follows: > > 1. add -DUSE_DL_IMPORT to CPPFLAGS in a cleaner way I moved this hunk from src/pl/plpython/Makefile to src/makefiles/Makefile.win to help keep all (well most) of the Win32 crud in one place. > 2. deal with the different socket module name in Python 1.5.x and 2.x, > if possible My patch contains a hunk for src/pl/plpython/feature.expected since Python 2.1's underlying socket (shared extension) module is "_socket" instead of "socket". I guess one could have two different feature.expected files, one for each version, but I wasn't sure that it was worth the effort. > I will also test it out on a non-Cygwin platform to make sure that I > didn't break anything on a UNIX platform. I tested the patch under Linux without any ill effects. > Once the above is completed, I will submit the patch to pgsql-patches > for consideration. Thanks, Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Attachment
Erny, On Wed, May 16, 2001 at 01:27:15AM +0200, Ernesto Revilla wrote: > 1. I downloaded all plpython files from CVS, including Makefile > 2. " and installed the global Makefile (Makefile.global) and the > configure script. > 3. " and installed the Win.h of the src/backend/port/dynloader and > other files > this all is under 7.1.1 CVS version > > When I do a make, plpython does not compile, because: > 1. plpython is not automatically included in the make process The automatic building of plpython is not enabled yet. From src/pl/Makefile, we have: # Doesn't build portably yet. #ifeq ($(with_python), yes) #DIRS += plpython #endif Hence, you will have to cd to src/pl/plpython and run make manually. > 2. for strange reasons -lpostgres is not included in the dllwrap command > line. (I did a new ./configure --with-python and make clean before > beginning). > 3. dllwrap (or dlltool) complains that there are references to unknown > symbols: _Py_NoneStruct, _Py_TrueStruct, PyString_Type, PyType_type, and 2 > others. This is because it uses /usr/lib/python2.1/config/libpython2.1.dll.a > which seems not to define these symbols. So I change this and link it > against /bin/libpython.2.1.dll (this is where it is installed by default). > Now the linker runs fine, without any error or warning. > > 4. When I create the language (absolute reference to /lib/plpython.dll) and > I run a testproc something like 'CREATE FUNCION kk() RETURNS int4 AS 'return > 1' LANGUAGE 'plpython'; the server process crashes. > > Any ideas? Did you forget to apply my patch? I have only submitted it to pgsql-patches, it has not been accepted into CVS. Without my patch you would get errors like the above. With my patch, plpython should build OOTB -- you should not have to do unrecommended things like #3 above. Jason -- Jason Tishler Director, Software Engineering Phone: +1 (732) 264-8770 x235 Dot Hill Systems Corp. Fax: +1 (732) 264-8798 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com Hazlet, NJ 07730 USA WWW: http://www.dothill.com
Due to time constraints, I do not directly answer general PostgreSQL questions. For assistance, please join the appropriate mailing list and post your question: http://postgresql.org/users-lounge You can also try the #postgresql IRC channel. See the PostgreSQL FAQ for more information. > 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.html > > enables full Python support (i.e., configure --with-python) for Cygwin > PostgreSQL. > > See below for some more details and one issue. > > On Mon, May 14, 2001 at 10:26:39AM -0400, Jason Tishler wrote: > > On Fri, May 11, 2001 at 03:54:06AM +0200, Ernesto Revilla wrote: > > > now I did it, so I wanted to ask > > > 1. if somebody could merge my makefile with the original one > > > 2. put the plpython into the postgres source tree 'pl' (as experimental or > > > whatever) > > > > It appears that plpython was recently (i.e., 2001/05/09) added to > > PostgreSQL CVS. So the above is not necessary. > > > > However, a small patch is necessary for plpython to build cleanly under > > Cygwin. Please get the latest PostgreSQL from CVS and apply the > > attached patch. I ran the supplied test.sh and all tests passed with > > the exception of the oid related ones (which is to be expected). > > > > I would be very interested to hear if plpython works for you in a real > > application, so please let me know. > > > > I intend improve my patch as follows: > > > > 1. add -DUSE_DL_IMPORT to CPPFLAGS in a cleaner way > > I moved this hunk from src/pl/plpython/Makefile to > src/makefiles/Makefile.win to help keep all (well most) of the Win32 > crud in one place. > > > 2. deal with the different socket module name in Python 1.5.x and 2.x, > > if possible > > My patch contains a hunk for src/pl/plpython/feature.expected since > Python 2.1's underlying socket (shared extension) module is "_socket" > instead of "socket". I guess one could have two different > feature.expected files, one for each version, but I wasn't sure that it > was worth the effort. > > > I will also test it out on a non-Cygwin platform to make sure that I > > didn't break anything on a UNIX platform. > > I tested the patch under Linux without any ill effects. > > > Once the above is completed, I will submit the patch to pgsql-patches > > for consideration. > > Thanks, > Jason > > -- > Jason Tishler > Director, Software Engineering Phone: +1 (732) 264-8770 x235 > Dot Hill Systems Corp. Fax: +1 (732) 264-8798 > 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com > Hazlet, NJ 07730 USA WWW: http://www.dothill.com [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Patch applied. Thanks. > 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.html > > enables full Python support (i.e., configure --with-python) for Cygwin > PostgreSQL. > > See below for some more details and one issue. > > On Mon, May 14, 2001 at 10:26:39AM -0400, Jason Tishler wrote: > > On Fri, May 11, 2001 at 03:54:06AM +0200, Ernesto Revilla wrote: > > > now I did it, so I wanted to ask > > > 1. if somebody could merge my makefile with the original one > > > 2. put the plpython into the postgres source tree 'pl' (as experimental or > > > whatever) > > > > It appears that plpython was recently (i.e., 2001/05/09) added to > > PostgreSQL CVS. So the above is not necessary. > > > > However, a small patch is necessary for plpython to build cleanly under > > Cygwin. Please get the latest PostgreSQL from CVS and apply the > > attached patch. I ran the supplied test.sh and all tests passed with > > the exception of the oid related ones (which is to be expected). > > > > I would be very interested to hear if plpython works for you in a real > > application, so please let me know. > > > > I intend improve my patch as follows: > > > > 1. add -DUSE_DL_IMPORT to CPPFLAGS in a cleaner way > > I moved this hunk from src/pl/plpython/Makefile to > src/makefiles/Makefile.win to help keep all (well most) of the Win32 > crud in one place. > > > 2. deal with the different socket module name in Python 1.5.x and 2.x, > > if possible > > My patch contains a hunk for src/pl/plpython/feature.expected since > Python 2.1's underlying socket (shared extension) module is "_socket" > instead of "socket". I guess one could have two different > feature.expected files, one for each version, but I wasn't sure that it > was worth the effort. > > > I will also test it out on a non-Cygwin platform to make sure that I > > didn't break anything on a UNIX platform. > > I tested the patch under Linux without any ill effects. > > > Once the above is completed, I will submit the patch to pgsql-patches > > for consideration. > > Thanks, > Jason > > -- > Jason Tishler > Director, Software Engineering Phone: +1 (732) 264-8770 x235 > Dot Hill Systems Corp. Fax: +1 (732) 264-8798 > 82 Bethany Road, Suite 7 Email: Jason.Tishler@dothill.com > Hazlet, NJ 07730 USA WWW: http://www.dothill.com [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 4: Don't 'kill -9' the postmaster -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000 + If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania 19026