> -----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.

Attachment: mysql_no_cast.patch
Description: mysql_no_cast.patch

Reply via email to