On lör, 2010-05-15 at 15:40 -0700, Yang Zhang wrote: > yang=# select * from qapb; > id | pb > ----+------------------------------------------------------------------------ > 0 | \012\006hello?\020\000\030\000 \000*\014\012\006hello!\020\000\030\000 > (1 row) > > yang=# create or replace function foo() returns text as $$ > import sys, plpy > if '/home/yang/work/pod/' not in sys.path: > sys.path.append('/home/yang/work/pod/') > from my_pb2 import * # this is a protobuf generated module > rv = plpy.execute('select * from qapb') > q = Q() > q.ParseFromString(str(rv[0]['pb'])) > return str(q); > $$ language plpythonu; > CREATE FUNCTION > yang=# select foo(); > foo > ----- > > (1 row) You have null bytes in the data value, which is not supported very well in PL/Python. Try the 9.0 beta version; it should be fixed there. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general