Skip site navigation (1) Skip section navigation (2)

DBD-Pg Placeholder usage in v 1.49

From: Max Pyziur <pyz(at)brama(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: DBD-Pg Placeholder usage in v 1.49
Date: 2008-01-16 16:16:41
Message-ID: Pine.LNX.4.60.0801161114120.12755@brama.com (view raw or flat)
Thread:
Lists: pgsql-interfaces
Greetings,

After having used DBD-PG-1.31 on Fedora Core 2 w/ perl 5.8.3 for a number 
of years, I've begun porting my work to
both Fedora 8 and Ubuntu where the DBD-Pg versions are 1.49. I've run into 
the seemingly often-visited placeholder issue.

Reviewing the README file, there is the following:
##############
To change your queries, make sure that the type of each placholder can
be determined by the PostgreSQL parser. So instead of:

   SELECT ?

use something like:

   SELECT ?::int

To turn off server-side prepares completely (with a loss of some 
performance and features), do this at the top of your scripts:

$dbh->{pg_server_prepare} = 0;

This can also be set for individual queries at the statment handle level: 
see the documentation for more details.

##############

I would like to follow the first recommendation rather than the first one. 
To that end, how would the following be modified, where the first 
placeholder is a text type, the second a date type, the third an integer 
type, and the fourth a date type.


FROM prices aa, oi_vol_tmp bb
WHERE aa.pr_date = bb.pr_date
AND symbol = ?
AND aa.pr_date BETWEEN date ? - integer ? AND ?

I've tried using:
AND aa.pr_date BETWEEN date ?::date - integer ?::int AND ?::date
with no success.

I've also tried looking for the appropriate documentation and haven't 
found any yet. I would appreciate suggestions as to where to look.


Max Pyziur
pyz(at)brama(dot)com

Responses

pgsql-interfaces by date

Next:From: Dean ArnoldDate: 2008-01-16 17:04:00
Subject: Re: DBD::Pg 2.0.0 release candidate available for testing
Previous:From: Tom LaneDate: 2008-01-16 15:33:28
Subject: Re: plperl fails to compile PostgreSQL v8.2.6

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group