On Sun, 2012-04-01 at 00:44 +1100, Ben Finney wrote: > Hannu Krosing <ha...@krosing.net> writes: > > > Has anyone used Cython for developing a module to be used from > > postgreSQL/pl/python. > > > > Something that calls back to PostgreSQL internals. > > Are you aware that PostgreSQL has long provided Python as a language for > writing stored procedures in the database? > > <URL:http://www.postgresql.org/docs/current/static/plpython.html> > > Does that meet your needs?
Sure, I have even contributed code to it ;) But what i want is some way to call _back_ into PostgreSQL to use its internal functions from a module imported from pl/python. I tried ctypes module and got a segfault when i used the following create or replace function callback_to_postgres(rn_text text) returns text language plpythonu as $$ from ctypes import * import struct pg = cdll.LoadLibrary('/usr/lib/postgresql/9.1/bin/postmaster') pg.pq_flush() return rn_text $$; select send_raw_notice('do you see me?'); <CRASHES HERE> I determined that the call to pg.pq_flush() was the one crashing the backend, so I assume that cdll.LoadLibrary did not get the already running backend, but loaded another copy of it as library. Now I'm looking for a simplest way to do some C-wrapping. I have used Cyuthon for wrapping simple library calls and I really don'r think there would be hard problems doing this inside the postgreSQL extension build framework. I was just hoping that someboduy had already taken care of all the nitty-gritty detaiuls of setting this up ------- Hannu Krosing PostgreSQL Unlimited Scalability and Performance Consultant 2ndQuadrant Nordic PG Admin Book: http://www.2ndQuadrant.com/books/ _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com