From bdd780dd88950106df09f81e539067f3bd98a06c Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Thu, 9 Aug 2007 19:03:42 +0000 Subject: [PATCH] restore clipping value for YEAR DDL --- lib/sqlalchemy/databases/mysql.py | 9 +++++++-- test/dialect/mysql.py | 9 ++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/sqlalchemy/databases/mysql.py b/lib/sqlalchemy/databases/mysql.py index 1393280397..766748c62f 100644 --- a/lib/sqlalchemy/databases/mysql.py +++ b/lib/sqlalchemy/databases/mysql.py @@ -551,9 +551,14 @@ class MSTimeStamp(sqltypes.TIMESTAMP): class MSYear(sqltypes.TypeEngine): """MySQL YEAR type, for single byte storage of years 1901-2155""" - def get_col_spec(self): - return "YEAR" + def __init__(self, length=None): + self.length = length + def get_col_spec(self): + if self.length is None: + return "YEAR" + else: + return "YEAR(%s)" % self.length class MSText(_StringType, sqltypes.TEXT): """MySQL TEXT type, for text up to 2^16 characters""" diff --git a/test/dialect/mysql.py b/test/dialect/mysql.py index fcf1de4492..ef05628842 100644 --- a/test/dialect/mysql.py +++ b/test/dialect/mysql.py @@ -422,8 +422,8 @@ class TypesTest(AssertMixin): Column('y1', mysql.MSYear), Column('y2', mysql.MSYear), Column('y3', mysql.MSYear), - Column('y4', mysql.MSYear), - Column('y5', mysql.MSYear)) + Column('y4', mysql.MSYear(2)), + Column('y5', mysql.MSYear(4))) try: year_table.create() @@ -433,8 +433,11 @@ class TypesTest(AssertMixin): for table in year_table, reflected: table.insert(['1950', '50', None, 50, 1950]).execute() row = list(table.select().execute())[0] - self.assert_eq(list(row), [1950, 2050, None, 2050, 1950]) + self.assert_eq(list(row), [1950, 2050, None, 50, 1950]) table.delete().execute() + self.assert_(colspec(table.c.y1).startswith('y1 YEAR')) + self.assert_eq(colspec(table.c.y4), 'y4 YEAR(2)') + self.assert_eq(colspec(table.c.y5), 'y5 YEAR(4)') finally: meta.drop_all() -- 2.47.3