[jifty-devel] Perhaps another bug :)
Joshua J. Kugler
jkugler at bigfoot.com
Wed Mar 22 01:54:46 EST 2006
On Monday 20 March 2006 07:22, Jesse Vincent said something like:
> On Sun, Mar 19, 2006 at 06:19:39PM +1100, bart bunting wrote:
> > Hi yet again,
> > It appears that it is not possible to have a column called order.
> The previous poster was correct. Jifty::DBI doesn't go to lengths to
> stop you from using an SQL reserved word for a column name, which
> means it might blow up. Should we be trying to protect you from
> yourself with a list of reserved words?
> (This is a serious question for everyone on the list)
And I have a serious answer (I hope).
My answer is: probably not. Different DB systems can have different
sets of reserved words due to implementing different parts of SQL92.
So, trying to keep reserved word lists straight could be a nightmare.
Also, what happens when someone starts using Jifty on a DB that doesn't
have an official reserved word list? If they are used to being
"protected," then they may be in for a rude surprise. I realize
frameworks such as Jifty, Catalyst, RoR, Turbotgears, etc, are designed
to lower the entry barrier for web apps, but I still think an
application designer should know *something* about the underlying
database he's using. Most DB's have a section in their manual listing
out all the reserved words. See, for example,
http://dev.mysql.com/doc/refman/4.1/en/reserved-words.html So, it's
not that hard to find out if a word you are using is reserved. If in
doubt, double up words. For example, instead of "order" make your
column name "item_order." There are very few double word reserved
words in SQL, and probably none that would clash with anything you'd
come up with in most applications.
Possible idea: have a common denominator list, such as "select, insert,
update, delete, order, group, from, etc."
Disclaimer: I'm a system admin, programmer, web app designer and
database admin. You can take the above for what its worth. :)
Joshua J. Kugler -- Fairbanks, Alaska -- ICQ#:13706295
Every knee shall bow, and every tongue confess, in heaven, on earth, and
under the earth, that Jesus Christ is LORD -- Count on it!
More information about the jifty-devel