Re: Re: Can not decompress a compressed string under plpy!
Hi,
I have stored a compressed string in a table field.
The compressed string is created by zlib using python.
I want to decompress this string by zlib under plpy but plpy fails to do
so. Is plpy not support decompression? Why?Thanks!
A bit more information is required. What version of Postgres are you using,
what
OS? I am guessing that the compressed string is being created by a Python
program external to the database and then inserted into a field, is this
correct? You are then trying to decompress the string via a plpythonu
function
within the database,correct? Did you import the zlib module into the
plpythonu
function?
--
Adrian Klaver
aklaver@comcast.net
Yes, most of your guess is correct.
I'm using postgresql 8.3.x and ms windows 2000.
The compressed string is saved to the table in binary
format using the psycopg. I had set the table field to bytea data type.
I want to use the plpythonu to decompress the stored
string.
Althout I imported the zlib module, it still failed.
I can successfully get back the decompressed string if
I use the psycopg either inside or outside the plpythonu.
But if without psycopg, plpythonu itself can not decompress the string.
I can use the psycopg inside the plpythonu but I must need to write security information (including user
name,password,server ip,port number,...) to the connection string inside plpythonu too.
This is a problem.
Thanks!
On Thursday 21 May 2009 3:26:22 pm Timmy wrote:
Yes, most of your guess is correct.
I'm using postgresql 8.3.x and ms windows 2000.
The compressed string is saved to the table in binary
format using the psycopg. I had set the table field to bytea data type.
I want to use the plpythonu to decompress the stored
string.
Althout I imported the zlib module, it still failed.
I can successfully get back the decompressed string if
I use the psycopg either inside or outside the plpythonu.
But if without psycopg, plpythonu itself can not decompress the string.
I can use the psycopg inside the plpythonu but I must need to write
security information (including user name,password,server ip,port
number,...) to the connection string inside plpythonu too. This is a
problem.Thanks!
Now you are getting outside my experience level. As a guess though I would say
that psycopg is taking care of escaping the data on the way out, whereas your
plpythonu function is not.
See www.postgresql.org/docs/8.3/interactive/datatype-binary.html for more
information.
--
Adrian Klaver
aklaver@comcast.net
On 2009-05-21, Timmy <timheit@netvigator.com> wrote:
Yes, most of your guess is correct.
I'm using postgresql 8.3.x and ms windows 2000.
The compressed string is saved to the table in binary
format using the psycopg. I had set the table field to bytea data type.
I want to use the plpythonu to decompress the stored
string.
Althout I imported the zlib module, it still failed.
I can successfully get back the decompressed string if
I use the psycopg either inside or outside the plpythonu.
But if without psycopg, plpythonu itself can not decompress the string.
I can use the psycopg inside the plpythonu but I must need to write security information (including user
name,password,server ip,port number,...) to the connection string inside plpythonu too.
This is a problem.
try running stripslashes on the returned value.
bytea values are returned double-slashed.