PLPython&;Postgresql中的强制转换复合数据类型

PLPython&;Postgresql中的强制转换复合数据类型,postgresql,stored-procedures,plpython,plpy,Postgresql,Stored Procedures,Plpython,Plpy,我正在用PlPython编写一个具有用户定义类型的存储过程。我知道Plpython不支持用户定义的类型,因此,我为用户定义的类型创建了一个CAST。当我打电话给plpy.prepare时,我还是不断收到一个错误。我不确定我是否使用了错误的CAST-示例代码如下: #User Defined Type - person CREATE TYPE person As( name character varying(50), state character(2)); #Table definitio

我正在用PlPython编写一个具有用户定义类型的存储过程。我知道Plpython不支持用户定义的类型,因此,我为用户定义的类型创建了一个CAST。当我打电话给plpy.prepare时,我还是不断收到一个错误。我不确定我是否使用了错误的CAST-示例代码如下:

#User Defined Type - person
CREATE TYPE person As( name character varying(50), state  character(2));

#Table definition using 'person'
CREATE TABLE manager As(id integer, mgr person)

#CAST for person
CREATE OR REPLACE FUNCTION person_to_text(person) RETURNS text AS 'SELECT ROW($1.*)::text' LANGUAGE SQL;
CREATE CAST (cv_person as text) WITH FUNCTION person_to_text(person)

#PlPython procedure

CREATE OR REPLACE FUNCTION load_portfolio_assoc (name text, state text) RETURNS integer AS $$

  mgr_str ="('"+name+"','"+state+"')"

  insert_qry = 'Insert into manager (mgr) values($1)'
  value_type = ['text']

  qry = plpy.prepare(insert_qry,value_type)   
  rv  = plpy.execute(qry, [mgr_str])

  return 1


  $$ LANGUAGE plpython3u;
更新:

Plpython在使用以下格式的变量$1::指定的用户定义类型编写查询时接受查询,并停止抛出复合类型不受支持的异常

insert_qry = 'Insert into manager (mgr) values($1::person)'
value_type = ['text']
最后,我真的不需要在数据库上做任何额外的强制转换操作。它只是通过如上所述调整变量来工作