Thread: [SQLObject] [patch] Fix bug that breaks "tg-admin sql status"
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: Paul J. <pa...@pa...> - 2006-12-11 17:45:53
|
Hi, I've just submitted a patch (request ID 1613369) with a simple bug fix that means "tg-admin sql status" now works for me. I am using the MSSQL backend. Any questions, just drop me a line. Paul |
From: Oleg B. <ph...@ph...> - 2006-12-11 17:54:11
|
On Mon, Dec 11, 2006 at 05:46:11PM +0000, Paul Johnston wrote: > I've just submitted a patch (request ID 1613369) with a simple bug fix > that means "tg-admin sql status" now works for me. I am using the MSSQL > backend. The patch is incorrect. First, where from sqlIdentifier() got unicode? SQL identifiers certainly must be strings. Second, there is no "basestring" in Python 2.2, and SQLObject still supports Python 2.2. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Paul J. <pa...@pa...> - 2006-12-11 23:10:42
|
Hi, Ok, I've looked into this a bit more and the value is unicode because it is returned from columnsFromSchema in mssqlconnection. Changing line 216 from kw['name'] = soClass.sqlmeta.style.dbColumnToPythonAttr(field) to kw['name'] = str(soClass.sqlmeta.style.dbColumnToPythonAttr(field)) also fixed the problem. I'm not quite sure where to go from here. SQL Server 2005 does support identifiers with unicode characters (I just created a table with a column name that includes hebrew characters). However, I guess it would be a big job to make SQLObject support this, and it is not important for me at the moment. As a bug fix for now, we can just convert name to a string, and possibly dbName as well. I think using the default encoding is appropriate; it will cause a UnicodeEncodeError if any unicode characters are fixed, which seems reasonable. So Oleg, if that sounds good to you, shall I submit an alternative patch? Thanks for your quick response, Paul Oleg Broytmann wrote: >On Mon, Dec 11, 2006 at 05:46:11PM +0000, Paul Johnston wrote: > > >>I've just submitted a patch (request ID 1613369) with a simple bug fix >>that means "tg-admin sql status" now works for me. I am using the MSSQL >>backend. >> >> > > The patch is incorrect. First, where from sqlIdentifier() got unicode? >SQL identifiers certainly must be strings. > Second, there is no "basestring" in Python 2.2, and SQLObject still >supports Python 2.2. > >Oleg. > > |
From: Oleg B. <ph...@ph...> - 2006-12-12 05:24:43
|
On Mon, Dec 11, 2006 at 11:11:51PM +0000, Paul Johnston wrote: > SQL Server 2005 does support > identifiers with unicode characters Alas, SQLObject is not fully unicode-aware yet. (And, BTW, unicode *names* (not values) is a big surprise for me.) > However, I guess it would > be a big job to make SQLObject support this The job is planned and is awaiting in the queue. > I think using the default encoding > is appropriate; it will cause a UnicodeEncodeError if any unicode > characters are fixed, which seems reasonable. Yes. > So Oleg, if that sounds good to you, shall I submit an alternative patch? Yes, please do. Thank you. Oleg. -- Oleg Broytmann http://phd.pp.ru/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |
From: Paul J. <pa...@pa...> - 2006-12-12 19:39:16
|
Hi, > Alas, SQLObject is not fully unicode-aware yet. (And, BTW, unicode >*names* (not values) is a big surprise for me.) > > Yes, me too! I'm not sure how portable this is across databases. >>So Oleg, if that sounds good to you, shall I submit an alternative patch? >> >> > Yes, please do. Thank you. > > Ok, I have put the patch on the tracker. Hope this one is ok. Paul |