Search Postgresql Archives

SPI_ERROR_UNCONNECTED in python callback function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I am using PL/Python to make queries via SPI. This seems to work when the

query is made directly, but when I pass a function as a callback to an external

module (in this case, python's cheetah templating engine), the function fails thusly:

=# select common.template(8963,1);

ERROR: plpython: function "template" could not create return value

DETAIL: <class 'plpy.SPIError'>: SPI_execute failed: SPI_ERROR_UNCONNECTED

=#

The code is

from Cheetah.Template import Template

import os, tempfile

def sql(x):

return plpy.execute(x)[0] # this is the callback function

def row(t,f,v):

return sql("select * from %s where %s = %s" % (t,f,v))

q = row("common.lu_templates","pk",template)

templ = q["definition"]

result = Template(templ, searchList=[{'row':row,'key':key,'plpy':plpy,'GD':GD,'sql':sql}]) # this template is calling the sql function above.

return result

It seems as soon as execution leaves the main function access to SPI is lost. Is this correct or a bug?

Is there any way to re-enable access to SPI?

Postgresql is 8.3.3, Python 2.5.2

Ian


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux