Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)

From: David Wheeler <david(at)wheeler(dot)net>
To: Rudy Lippan <rlippan(at)remotelinux(dot)com>
Cc: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>, Dominic Mitchell <dom(at)semantico(dot)com>, <pgsql-interfaces(at)postgresql(dot)org>, "'DBI developers'" <dbi-dev(at)perl(dot)org>
Subject: Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)
Date: 2003-05-29 15:34:26
Message-ID: 07EFE962-91EB-11D7-975B-0003931A964A@wheeler.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

On Thursday, May 29, 2003, at 01:57 AM, Rudy Lippan wrote:

> On Mon, 26 May 2003, Bruce Momjian wrote:
>
>> Rudy, where are we on the release of DBD:pg withs your patches? Are
>> they ready to go?
>
>
> I spun an ALPHA copy of DBD::Pg. So much has changed in there that I am
> sure something is broken for someone; therefore, I think we should let
> people hammer on it for a few days before making an official release.
>
> I put the alpha up here:
> http://www.remotelinux.com/rlippan/DBD-Pg-1.30_1.tar.gz

Nice, thanks for this, Rudy.

> And for anyone who is interested here is the change log:
>
> - $dbh->prepare() rewrites the SQL statement into an internal for
> striping out comments and whitespace, and if PostgreSQL > 7.3
> takes
> the
> stripped statement and passes that to postgress' PREPARE
> statement,
> then rewrites the statement as 'EXECUTE "DBD::PG::cached_query n"
> ($1, $2, ... $n, $n+1)' for DBD::Pg's execute. -- Currently
> disabled
> until PREPARE works a little better

Pity. Do you know if it will work as well as you need in 7.4? Have you
tested it with the latest from CVS? I think that it is close-ish to
done, so now would be the time to get in any requests for fixes.

> - Allows the use of :n and :foo bind params. So: (SELECT * FROM foo
> where
> 1 = :this and 2 = :that) will now work.
> - Complains on execute when unbound bind params are submitted
> (instead
> of
> defaulting to NULL)

Ah, good!

> - Switched over to use driver.xst.

About time we did this!

> - pg_error() only removes \n's don't truncate message on first \n

Heh, funny. If we don't release 1.30 with all your changes soon, it
might be worth it to backport this fix.

> - fixed statement scan problem where the preparse of
> "SELECT foo[3:33] from bar" was scanning :33 as a placeholder
> - moved the quoting of bind values out of execute() and into
> bind -- as there is no need to requote the value every time
> execute
> is called.

rudy++

> - :veryverylongplaceholdername == Long walk. Sort pier -- fixed.
> - quote() is now in C and uses same code as bind_param.
> - quoting and dequoting now use libpq quoting functions where
> available
> (I still need to take the libpq functions swiped out of quote.c
> and
> move
> it into libpqswip.c with license info &c., and switch ifndefs to
> ifdefs)

Good, nice to have all this centralized.

> - bind_param() will convert from 1,0 to TRUE/FALSE when pg_type is
> PGBOOLOID.

Nice.

> - fixed many heap buffer overruns.

Thanks Rudy, sounds great!

David

--
David Wheeler AIM: dwTheory
david(at)kineticode(dot)com ICQ: 15726394
http://kineticode.com/ Yahoo!: dew7e
Jabber: Theory(at)jabber(dot)org
Kineticode. Setting knowledge in motion.[sm]

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message David Wheeler 2003-05-29 15:36:28 Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)
Previous Message Dominic Mitchell 2003-05-29 09:00:21 Re: DBD::Pg 1.30_1 WAS (Re: Prepare and prepare ?)