> -----Original Message----- > From: sqlalchemy@googlegroups.com > [mailto:sqlalch...@googlegroups.com] On Behalf Of Michael Bayer > Sent: 03 June 2010 19:38 > To: sqlalchemy@googlegroups.com > Subject: Re: [sqlalchemy] SA on MySQL 3.23 > > > On Jun 3, 2010, at 1:15 PM, King Simon-NFHD78 wrote: > > > Hi, > > > > According to sqlalchemy/dialects/mysql/base.py, MySQL v3.23 > should be > > supported in some form. However, with SA 0.6.1 and MySQL > 3.23.58, I get > > the following error: > > > > raise errorclass, errorvalue > > _mysql_exceptions.ProgrammingError: (1064, "You have an > error in your > > SQL syntax near '('test unicode returns' AS CHAR(60)) AS > anon_1' at line > > 1") > > > > > > According to > http://dev.mysql.com/doc/refman/4.1/en/cast-functions.html, > > the CAST function was added in 4.0.2. > > > > Is there any way that I can avoid this error? Perhaps with > some engine > > or dialect option that configures the > returns_unicode_strings attribute > > without running the test? > > > > > heh wow, that little test we've added is proving to be quite > a PITA. OK so in this case its the CAST thats barfing ? > the options we could do here are: > > 1. have cast() do nothing with the MySQL dialect if the MySQL > version < 4.0.2 (is there some MySQL-specific syntax that > works maybe ?) > 2. have the MySQL dialect not run _check_unicode_returns if > the version < 4.0.2 > 3. put the unicode checks in a try/except and default the > returns to False if something didn't work > > since i dont have an old MySQL installed here, do you need me > to give you patches for these so you can test ? > >
I'll happily try any suggestions you've got :-) I couldn't see anything in the MySQL docs that suggested an alternative to the CAST function, so it seems reasonable to just omit it for older MySQL servers. I applied the attached patch, and it at least allowed me to connect to the server and issue basic queries, but I haven't done any more testing than that. Option 1 sounded best to me just because I didn't know if there would be any other places that SA might implicitly run a query that included a CAST. I suppose it changes the semantics of the query though... I've tried to run the unit tests, but I get lots of errors and failures that I assume are expected on such an old version of MySQL. Cheers, Simon -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
mysql_no_cast.patch
Description: mysql_no_cast.patch