Re: DBD::Pg, bytea type - Mailing list pgsql-interfaces

From ivan
Subject Re: DBD::Pg, bytea type
Date
Msg-id 20010308140404.A12354@cleanwhisker.420.am
Whole thread Raw
In response to DBD::Pg, bytea type  (Alex Pilosov <alex@pilosoft.com>)
List pgsql-interfaces
On Thu, Mar 08, 2001 at 02:48:16PM -0500, Alex Pilosov wrote:
> Hiyas,
> 
> Currently, there's a problem using bytea type transparently with DBD::Pg
> driver. Postgres requires you to quote things in a special way to handle
> bytea data, for example, to insert a null character, you have to use 
> '\000'. Select, on other hand, will require you to uncode such data before
> you can actually use it in perl. 
> 
> I'm making patches for DBD::Pg which will properly quote bytea data
> before insertion and unquote it on select. Let me know if its not a good
> idea.

Surely other 8-bit clean interfaces besides DBD::Pg run into this problem
also?  Any insights? 

I'd think that it should be transparant for both the quote() method and
placeholders.  Placeholders also *segfault* the client (not something
we're used to in Perl-land) if you try to use more than 64k of data (not
sure if that's per-placeholder, statement, row or something else).

> Another thing: Currently, Pg quote() method only will properly escape
> backslash if the datatype is not specified. If the datatype is specified,
> it'll give wrong result:
> $dbh->quote('foo\\bar', SQL_CHAR) will result in 'foo\bar', but it should
> result in 'foo\\bar'. Anyone minds if I fix this one as well?

I've heard a variety of different problem reports about quote().  Here's a
patch one of my cow orkers sent me:

http://www.postgresql.org/mhonarc/pgsql-interfaces/2001-02/msg00199.html

-- 
meow
_ivan


pgsql-interfaces by date:

Previous
From: Randy Jonasz
Date:
Subject: Re: libpq++
Next
From: Alex Pilosov
Date:
Subject: Re: DBD::Pg, bytea type