BUG #1720: placeholders do not work with timestamp prefix

Started by Wellie Chaoalmost 21 years ago2 messagesbugs
Jump to latest
#1Wellie Chao
wchao@yahoo.com

The following bug has been logged online:

Bug reference: 1720
Logged by: Wellie Chao
Email address: wchao@yahoo.com
PostgreSQL version: 8.0.0
Operating system: Linux (with kernel 2.4.18)
Description: placeholders do not work with timestamp prefix
Details:

I am using DBI 1.48 and DBD::Pg 1.42 (the programming language is obviously
Perl) to connect to PostgreSQL 8.0.0. The following statements cause
problems:

2005-06-17 16:21:41 EDT LOG: statement: select * from reservation_tbl where
room_id = $1 and (start_dt, end_dt) overlaps (timestamp $2, timestamp $3)
2005-06-17 16:21:41 EDT ERROR: syntax error at or near "$2" at character
93
2005-06-17 16:21:41 EDT LOG: statement: insert into reservation_tbl
(room_id, account_id, start_dt, end_dt, note) values ($1, $2, timestamp $3,
timestamp $4, $5)
2005-06-17 16:21:41 EDT ERROR: syntax error at or near "$3" at character
101

I think it is something to do with the "timestamp" keyword interacting badly
with placeholders.

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Wellie Chao (#1)
Re: BUG #1720: placeholders do not work with timestamp prefix

"Wellie Chao" <wchao@yahoo.com> writes:

I am using DBI 1.48 and DBD::Pg 1.42 (the programming language is obviously
Perl) to connect to PostgreSQL 8.0.0. The following statements cause
problems:

2005-06-17 16:21:41 EDT LOG: statement: select * from reservation_tbl where
room_id = $1 and (start_dt, end_dt) overlaps (timestamp $2, timestamp $3)
2005-06-17 16:21:41 EDT ERROR: syntax error at or near "$2" at character
93

The above is not valid SQL --- the notation "timestamp x" is only legal
when x is a simple string literal. I think you need to complain to the
DBI or DBD::Pg folk, if their code is generating this query.

regards, tom lane