Re: prepared statements and DBD::Pg

From: Keary Suska <pgsql-general(at)esoteritech(dot)com>
To: Postgres General <pgsql-general(at)postgresql(dot)org>
Subject: Re: prepared statements and DBD::Pg
Date: 2009-05-06 16:28:01
Message-ID: 47626398-669A-4B55-85F3-43C8EF166335@esoteritech.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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"

In response to

Browse pgsql-general by date

  From Date Subject
Next Message digital_illuminati 2009-05-06 16:28:37 Yahoo Everest MPP - open source release?
Previous Message Thomas Kellerer 2009-05-06 16:24:46 Re: XML -> PG ?