Re: DBD-Pg Placeholder usage in v 1.49

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Max Pyziur <pyz(at)brama(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: DBD-Pg Placeholder usage in v 1.49
Date: 2008-01-16 17:17:11
Message-ID: 25258.1200503831@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

Max Pyziur <pyz(at)brama(dot)com> writes:
> 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.

It should just be

... AND aa.pr_date BETWEEN ?::date - ?::int AND ?::date

The type-name-at-the-front syntax is redundant with the cast, and
is only allowed for simple literal constants anyway. It worked for
you before because DBD-PG was replacing the ? marks with literal
strings, but it wasn't ever really "the right thing". See

http://www.postgresql.org/docs/8.2/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS-GENERIC

regards, tom lane

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Max Pyziur 2008-01-16 17:59:27 Re: Multiple command usage in DBD-Pg v 1.49
Previous Message Dean Arnold 2008-01-16 17:04:00 Re: DBD::Pg 2.0.0 release candidate available for testing