Re: [CDBI] Quoting reserved words.

"Edward J. Sabol" <[email protected]> Thu, 14 Jan 2010 00:49:22 -0500
Newsgroups gmane.comp.lang.perl.modules.class-dbi
Message-ID <[email protected]>
Bill Moseley wrote:
> Client upgraded to Postgresql 8.4 and started seeing this: DBD::Pg::st
> execute failed: ERROR: syntax error at or near "window"
>
> Where "window" happens to be a column name in a class.
>
> I remember that you can create an alias for a table name to deal with
> reserved words, but I don't remember how to deal with column names that
> are reserved words.

Have you tried specifying the column name as '"window"'? A similar trick
mostly worked for table names. I suspect it won't work as well for column
names though. You'd probably need at least custom
accessor_name_for/mutator_name_for methods to remove the quotes.

I looked over my personal archive of the mailing list going back to 2003, and
the only real discussion (and solutions) I found dealt with table names. The
one time I found where column names came up, in December 2006, I suggested
subclassing Class::DBI::SQL::Transformer to do what you need in an API-clean
way, but that was just theoretical. Nobody's ever tried it, AFAIK.

> Found this: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=361533

Well, that's some interesting stuff. Those changes look pretty reasonable to
me....

Alternatively, you could make a view in the database that is basically
identical to the table in question but with the "window" column name changed
to something else.

Hope this helps,
Ed