summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/databases/mysql.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/databases/mysql.py')
-rw-r--r--lib/sqlalchemy/databases/mysql.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py
index aa05134d0..e32d6f120 100644
--- a/lib/sqlalchemy/databases/mysql.py
+++ b/lib/sqlalchemy/databases/mysql.py
@@ -9,7 +9,6 @@ import sys, StringIO, string, types, re, datetime
from sqlalchemy import sql,engine,schema,ansisql
from sqlalchemy.engine import default
import sqlalchemy.types as sqltypes
-import sqlalchemy.databases.information_schema as ischema
import sqlalchemy.exceptions as exceptions
try:
@@ -250,6 +249,15 @@ class MySQLDialect(ansisql.ANSIDialect):
class MySQLCompiler(ansisql.ANSICompiler):
+ def visit_cast(self, cast):
+ """hey ho MySQL supports almost no types at all for CAST"""
+ if (isinstance(cast.type, sqltypes.Date) or isinstance(cast.type, sqltypes.Time) or isinstance(cast.type, sqltypes.DateTime)):
+ return super(MySQLCompiler, self).visit_cast(cast)
+ else:
+ # so just skip the CAST altogether for now.
+ # TODO: put whatever MySQL does for CAST here.
+ self.strings[cast] = self.strings[cast.clause]
+
def limit_clause(self, select):
text = ""
if select.limit is not None: