On 4/24/07, Oleg Broytmann <[EMAIL PROTECTED]> wrote:
> What do you think of this one?
> http://sourceforge.net/tracker/index.php?func=detail&aid=1653898&group_id=74338&atid=540674
>
> Can you test it?

I applied it and looked at the changes it makes.  The last hunk

     def _setAutoCommit(self, conn, auto):
@@ -71,13 +84,11 @@
     def _executeRetry(self, conn, cursor, query):
         while 1:
             try:
-                if self.need_unicode:
-                    # For MysqlDB 1.2.1 and later, we go
-                    # encoding->unicode->charset (in the mysql db)
-                    myquery = unicode(query, self.encoding)
-                    return cursor.execute(myquery)
-                else:
-                    return cursor.execute(query)
+                # For MySQLdb 1.2.1 and later, we go
+                # encoding->unicode->charset (in the mysql db)
+                if self.need_unicode and not isinstance(query, unicode):
+                    query = unicode(query, self.dbEncoding)
+                return cursor.execute(query)
             except MySQLdb.OperationalError, e:
                 if e.args[0] == 2013: # SERVER_LOST error
                     if self.debug:

is exactly the one I proposed plus some code cleanup.  This is ok and
suffices to make my test-code work.  As for the other hunks, well I
cannot say much.

It seems that it includes some MySQLdb version check which uses SET
NAMES for versions pre 1.2.1 to set the encoding.  I cannot test this,
since I never used that old connector version.  I used 1.2.1 beta for
over a year, and since 1.2.2 came out recently, I switched to that
one.

Next, the patch contains some code to eliminate the possibility that
the connection parameters 'charset' and 'sqlobject_encoding' can be
different, although not popping both of them if they are both present.
 This leads to an error message when both are specified:
TypeError: __init__() got an unexpected keyword argument 'sqlobject_encoding'

Further I thought that 'charset' is the MySQL encoding and
'sqlobject_encoding' is the one used by SQLObject.  I thought that
both have a right to exist.  The patch unifies them to one parameter,
and I have no idea if this is a good or a bad thing.

And last, the patch adds a new UnicodeStringLikeConverter which
encodes to 'utf8' hardcoded.  I doubt that this is the correct thing
to do under all circumstances.

Just my 2 Cent,
Markus

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
sqlobject-discuss mailing list
sqlobject-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sqlobject-discuss

Reply via email to