[Dbix-class] Escaping placeholders

Tim Bunce Tim.Bunce at pobox.com
Sat Dec 20 22:17:56 GMT 2014


On Sat, Dec 20, 2014 at 01:14:29PM -0800, Jonathan Leffler wrote:
>    Many, many years ago, DBD::Informix had to give up on the DBI-provided parsing for placeholders because
>    there were too many contexts in which it was wrong for Informix.  It may have improved since then, but:
> 
>          INSERT INTO SomeTable(DateTimeCol)
>            VALUES(DATETIME(2014-12-31 23:59:59) YEAR TO SECOND);

>    I think I raised this as an issue back in the 1996-1998 timeframe (I said 'many years ago' and meant
>    it).  I'd have to dig through my release notes to be more precise.  Informix only supports natively the
>    `?` placeholders.  It doesn't yet have the complexities introduced by the PostgreSQL operators.
> 
>    I don't know whether this can be handled at all.  It may be that DBD::Informix has to stay out in
>    isolation but it would be nice if it wasn't necessary.

The `?` placeholders are 'standard' (for some definition) so DBD::Informix
isn't really 'in isolation'. There are quite a few drivers that only
support `?` placeholders.

In theory, if this proposal goes ahead, and is applied to `:` placeholders
as seems likely, then you'd be able to write the above as:

           INSERT INTO SomeTable(DateTimeCol)
             VALUES(DATETIME(2014-12-31 23\:59\:59) YEAR TO SECOND);

Tim.



More information about the DBIx-Class mailing list