Thread: [SQLObject] Quoting reserved column names...
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Sam's L. <sam...@gm...> - 2009-06-11 04:40:45
|
So I keep humming along on this upgrade of someone else's code from old versions of SQLObject and Mysql to the current SQLObject and MySQL 5... The current problem is that I have a table with the column name 'condition' which apparently is not a reserved word in MySQL 4.0 but is a reserved word in 5.0. When SQLObject translates its stuff to sql it does not put quotes around the column names. If it only would everything would work fine. I could rename the column, but the word is used a lot in the program in different ways, so it will get confusing to make sure I only change the right ones . Is there a way to force SQLObject to quote it properly? |
From: jonhattan <jon...@fa...> - 2009-06-11 08:41:56
|
Sam's Lists escribió: > So I keep humming along on this upgrade of someone else's code from > old versions of SQLObject and Mysql to the current SQLObject and MySQL > 5... > > The current problem is that I have a table with the column name > 'condition' which apparently is not a reserved word in MySQL 4.0 but > is a reserved word in 5.0. > > When SQLObject translates its stuff to sql it does not put quotes > around the column names. If it only would everything would work fine. > > I could rename the column, but the word is used a lot in the program > in different ways, so it will get confusing to make sure I only change > the right ones . > > Is there a way to force SQLObject to quote it properly? > you can force the name of the column in the database this way: condition = StringCol(dbName='_condition') > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > ------------------------------------------------------------------------ > > _______________________________________________ > sqlobject-discuss mailing list > sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss > |
From: Dan P. <da...@ag...> - 2009-06-11 09:31:04
|
On 11 Jun 2009, at 11:23, jonhattan wrote: > Sam's Lists escribió: >> So I keep humming along on this upgrade of someone else's code from >> old versions of SQLObject and Mysql to the current SQLObject and >> MySQL >> 5... >> >> The current problem is that I have a table with the column name >> 'condition' which apparently is not a reserved word in MySQL 4.0 but >> is a reserved word in 5.0. >> >> When SQLObject translates its stuff to sql it does not put quotes >> around the column names. If it only would everything would work >> fine. >> >> I could rename the column, but the word is used a lot in the program >> in different ways, so it will get confusing to make sure I only >> change >> the right ones . >> >> Is there a way to force SQLObject to quote it properly? >> > you can force the name of the column in the database this way: > > condition = StringCol(dbName='_condition') Or simply quote it and you do not need to change anything: condition = StringCol(dbName='`condition`') -- Dan |
From: Oleg B. <ph...@ph...> - 2009-06-22 14:20:41
|
On Thu, Jun 11, 2009 at 11:50:09AM +0300, Dan Pascu wrote: > On 11 Jun 2009, at 11:23, jonhattan wrote: > > Sam's Lists escribi?: > >> Is there a way to force SQLObject to quote it properly? > >> > > you can force the name of the column in the database this way: > > > > condition = StringCol(dbName='_condition') > > Or simply quote it and you do not need to change anything: > > condition = StringCol(dbName='`condition`') But you have to remember this may cause problems when SQLObject uses dbName to construct a complex name like sequence name (in Postgres). Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Dan P. <da...@ag...> - 2009-06-24 09:32:11
|
On 22 Jun 2009, at 17:20, Oleg Broytmann wrote: > On Thu, Jun 11, 2009 at 11:50:09AM +0300, Dan Pascu wrote: >> On 11 Jun 2009, at 11:23, jonhattan wrote: >>> Sam's Lists escribi?: >>>> Is there a way to force SQLObject to quote it properly? >>>> >>> you can force the name of the column in the database this way: >>> >>> condition = StringCol(dbName='_condition') >> >> Or simply quote it and you do not need to change anything: >> >> condition = StringCol(dbName='`condition`') > > But you have to remember this may cause problems when SQLObject uses > dbName to construct a complex name like sequence name (in Postgres). That quoting is only valid and necessary in mysql. IMO all this quoting of table and column names should be done internally by the specific database driver according to the specific database requirements. This manual quoting is just a workaround. -- Dan |