# HG changeset patch
# User Simon King <simon.king@motorola.com>
# Date 1275647025 -3600
# Node ID 58c9165d6186c89d66fd1f188a4f0bad722f85f7
# Parent  dd463bfb847d58d2acd97a77a4d9d9f09034c1b4
CAST doesn't exist prior to MySQL 4.0.2

diff --git a/lib/sqlalchemy/dialects/mysql/base.py b/lib/sqlalchemy/dialects/mysql/base.py
--- a/lib/sqlalchemy/dialects/mysql/base.py
+++ b/lib/sqlalchemy/dialects/mysql/base.py
@@ -1186,6 +1186,8 @@
 
     def visit_cast(self, cast, **kwargs):
         # No cast until 4, no decimals until 5.
+        if self.dialect.server_version_info < (4, 0, 2):
+            return self.process(cast.clause)
         type_ = self.process(cast.typeclause)
         if type_ is None:
             return self.process(cast.clause)
# HG changeset patch
# User Simon King <simon.king@motorola.com>
# Date 1275648760 -3600
# Node ID 2dcfd775a66dd4dbc079bdfd028de25e6121ecf5
# Parent  58c9165d6186c89d66fd1f188a4f0bad722f85f7
_server_version function is in the testing module

diff --git a/lib/sqlalchemy/test/noseplugin.py b/lib/sqlalchemy/test/noseplugin.py
--- a/lib/sqlalchemy/test/noseplugin.py
+++ b/lib/sqlalchemy/test/noseplugin.py
@@ -142,7 +142,7 @@
             if testing._is_excluded(*rule):
                 print "'%s' unsupported on DB %s version %s" % (
                     cls.__class__.__name__, testing.db.name,
-                    _server_version())
+                    testing._server_version())
                 return True
         return False
 
