Re: prepared statements and DBD::Pg - Mailing list pgsql-general

From Keary Suska
Subject Re: prepared statements and DBD::Pg
Date
Msg-id 47626398-669A-4B55-85F3-43C8EF166335@esoteritech.com
Whole thread Raw
In response to prepared statements and DBD::Pg  (JP Fletcher <jpfletch@ca.afilias.info>)
List pgsql-general
On May 6, 2009, at 9:39 AM, JP Fletcher wrote:

> Hi,
>
> I see different behavior with DBI/DBD::Pg (1.607/2.11.8, pg 8.1)
> when the first command in a prepared statement is 'CREATE TEMP TABLE'.
>
> For instance, this works:
>
>   my $prepare_sql =<<SQL;
>       CREATE TEMP TABLE foo( id int, user_id int,);
>
>       INSERT INTO foo(1, 1);
>
>       INSERT INTO foo(2, 2);
>           SQL
>
>   my $sth = $dbh->prepare($prepare_sql);
>
>
> This produces the error
>
> ERROR:  cannot insert multiple commands into a prepared statement
>
> my $prepare_sql =<<SQL;
>             INSERT INTO foo(1, 1);
>
>       INSERT INTO foo(2, 2);
>           SQL
>
>   my $sth = $dbh->prepare($prepare_sql);
>
>
> Is this the expected behaviour?
>


You should follow up on the DBD::Pg list, but I would guess that the
module is doing a surface check to determine whether the statement is
a candidate for being prepared. I bet that whenever the first
statement is not a select, insert, delete, or update that you will not
get an error. What is happening ion these cases is that no preparation
is happening at all.

HTH,

Keary Suska
Esoteritech, Inc.
"Demystifying technology for your home or business"


pgsql-general by date:

Previous
From: David Fetter
Date:
Subject: Re: Yahoo Everest MPP - open source release?
Next
From: "Joshua D. Drake"
Date:
Subject: Re: Yahoo Everest MPP - open source release?