Hey Mike,

I have a DB that uses MySQL's MEDIUMINT type in a bunch of places.
Because many of those are used as foreign keys, I need SQLAlchemy to
be happy emitting tables with MEDIUMINT types.  The below patch does
that.  This is against an 0.4 checkout from a few mins ago.


Index: lib/sqlalchemy/databases/mysql.py
===================================================================
--- lib/sqlalchemy/databases/mysql.py   (revision 5048)
+++ lib/sqlalchemy/databases/mysql.py   (working copy)
@@ -172,7 +172,7 @@
     'MSMediumBlob', 'MSMediumText', 'MSNChar', 'MSNVarChar',
     'MSNumeric', 'MSSet', 'MSSmallInteger', 'MSString', 'MSText',
     'MSTime', 'MSTimeStamp', 'MSTinyBlob', 'MSTinyInteger',
-    'MSTinyText', 'MSVarBinary', 'MSYear' )
+    'MSTinyText', 'MSVarBinary', 'MSYear', 'MSMediumInteger' )
 
 
 RESERVED_WORDS = util.Set(
@@ -549,6 +549,33 @@
             return self._extend("BIGINT")
 
 
+class MSMediumInteger(MSInteger):
+    """MySQL MEDIUMINTEGER type."""
+
+    def __init__(self, length=None, **kw):
+        """Construct a MEDIUMINTEGER
+
+        length
+          Optional, maximum display width for this number.
+
+        unsigned
+          Optional.
+
+        zerofill
+          Optional. If true, values will be stored as strings left-padded with
+          zeros. Note that this does not effect the values returned by the
+          underlying database API, which continue to be numeric.
+        """
+
+        super(MSMediumInteger, self).__init__(length, **kw)
+
+    def get_col_spec(self):
+        if self.length is not None:
+            return self._extend("MEDIUMINT(%(length)s)" % {'length': 
self.length})
+        else:
+            return self._extend("MEDIUMINT")
+
+
 class MSTinyInteger(MSInteger):
     """MySQL TINYINT type."""
 

-- 
Ross Vandegrift
[EMAIL PROTECTED]

"The good Christian should beware of mathematicians, and all those who
make empty prophecies. The danger already exists that the mathematicians
have made a covenant with the devil to darken the spirit and to confine
man in the bonds of Hell."
        --St. Augustine, De Genesi ad Litteram, Book II, xviii, 37

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to sqlalchemy@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to